JavaSpring框架-如何设置内容类型?

JavaSpring框架-如何设置内容类型?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个spring操作,我正在从控制器呈现一些json,在返回内容类型“text/plain”的那一刻;字符集=ISO-8859-1' 如何将其更改为“application/json”?将HttpServletResponse传递给您的操作方法,并在其中设置内容类型: public String yourAction(HttpServletResponse response) { response.setContentType("application/json"); } 是的,但

我有一个spring操作,我正在从控制器呈现一些json,在返回内容类型“text/plain”的那一刻;字符集=ISO-8859-1'


如何将其更改为“application/json”?

HttpServletResponse
传递给您的操作方法,并在其中设置内容类型:

public String yourAction(HttpServletResponse response) {
    response.setContentType("application/json");
}

是的,但这仅在获取控制器中的HttpServletResponse时有效

在Spring3中,我们被鼓励避免引用servlet域中的任何内容,只保留POJO和注释。有没有一种方法可以在不引用HttpServletResponse的情况下执行此操作?也就是说,保持我们自己的纯洁?

您是否尝试过使用

SpringMVC视图,通过使用Jackson的ObjectMapper序列化当前请求的模型来呈现JSON内容

它将内容类型设置为:
application/json

 @RequestMapping(value = "jsonDemoDude", method = RequestMethod.GET)
    public void getCssForElasticSearchConfiguration(HttpServletResponse response) throws IOException {        
        String jsonContent= ...;
        HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(response);
        wrapper.setContentType("application/json;charset=UTF-8");
        wrapper.setHeader("Content-length", "" + jsonContent.getBytes().length);
        response.getWriter().print(jsonContent);
}

您还可以添加传统的X字节或任何您想要的“回调”部分(跨站点json请求)。

您好,我尝试过放置,但在编译时遇到错误“找不到符号:类HttpServletResponse”。您导入了吗<代码>导入javax.servlet.http.HttpServeltResponse你的类路径上有ServletAPI吗?嘿,我正在手动执行Spring已经为我提供的操作。感谢指针:)您可以使用JSR-311(JAX-RS)实现,它通过注释提供对内容类型的显式控制。下面是对这些问题的讨论:是的,您可以使用@RequestMapping注释的“products”属性,有关以这种方式设置编码的示例,请参阅。另请参阅对类似问题的回答: