从Spring控制器返回纯文本字符串和原始json字符串,具有正确的内容类型

时间:2014-11-21 10:44:29

标签: java json spring spring-mvc content-type

我有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”参数中指定的内容?

0 个答案:

没有答案