我有Spring(版本3.2.9)控制器返回字符串。有些方法返回纯文本,有些返回JSON。
示例:
@RequestMapping(value="/json", produces = "application/json; charset=utf-8")
@ResponseBody
public String json() {
return "{\"foo\": \"bar\"}";
}
@RequestMapping(value="/text", produces = "text/plain; charset=utf-8")
@ResponseBody
public String text() {
return "foobar";
}
我可以配置StringHttpMessageConverter为其中一个设置正确的内容类型
<bean class = "org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain; charset=UTF-8" />
</bean>
OR
<bean class = "org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json; charset=UTF-8" />
</bean>
我还尝试将包含(application / json和plain / text)类型的数组作为supportedMediaTypes的参数,但是Content-Type设置为类似于数组的第一个类型
<property name="supportedMediaTypes">
<array>
<value>application/json; charset=UTF-8</value>
<value>text/plain; charset=UTF-8</value>
</array>
</property>
我知道我可以直接写入HttpResponses输出流,但我想改用@ResponseBody。
如何配置Spring以便它返回字符串但将Content-Type设置为我在“produce”参数中指定的内容?