当前位置: 首页 > 面试题库 >

在Spring MVC中,使用@ResponseBody时如何设置MIME类型标题

伍皓
2023-03-14
问题内容

我有一个Spring MVC控制器,它返回一个JSON字符串,我想将mimetype设置为application / json。我怎样才能做到这一点?

@RequestMapping(method=RequestMethod.GET, value="foo/bar")
@ResponseBody
public String fooBar(){
    return myService.getJson();
}

业务对象已经可以作为JSON字符串使用,因此使用MappingJacksonJsonView不是我的解决方案。@ResponseBody是完美的,但如何设置模仿类型?


问题答案:

我会考虑重构服务以返回您的域对象而不是JSON字符串,并让Spring处理序列化(通过MappingJacksonHttpMessageConverter编写时的)。从Spring
3.1开始,实现看起来很整洁:

@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE, 
    method = RequestMethod.GET
    value = "/foo/bar")
@ResponseBody
public Bar fooBar(){
    return myService.getBar();
}

注释:

首先,<mvc:annotation-driven />@EnableWebMvc必须添加到您的应用程序配置中。

接下来,注释的Produces属性@RequestMapping用于指定响应的内容类型。因此,应将其设置为MediaType.APPLICATION_JSON_VALUE(或"application/json")。

最后,必须添加Jackson,以便Java和JSON之间的任何序列化和反序列化都将由Spring自动处理(Spring检测到Jackson依赖关系,并且MappingJacksonHttpMessageConverter将在后台进行)。



 类似资料:
  • 问题内容: 我有一个Spring MVC控制器,它返回一个JSON字符串,我想将mimetype设置为application / json。我怎样才能做到这一点? 业务对象已经可以作为JSON字符串使用,因此使用不是我的解决方案。是完美的,但如何设置模仿类型? 问题答案: 我会考虑重构服务以返回您的域对象而不是JSON字符串,并让Spring处理序列化(通过编写时的)。从Spring 3.1开始,

  • 问题内容: 我在SpringMVC项目中将新的Java API(JSR 353)用于JSON。 这个想法是生成一些Json数据并将其返回给客户端。我所拥有的控制器看起来像这样: 当我访问它时,我没有得到JSON的预期表示,而是得到了这些: 为什么是这样?到底是怎么回事?以及如何使其正确返回预期的JSON? 问题答案: 当您意识到新的JSR 353 API 没有特殊要求时,答案很简单。相反,在这种情

  • 问题内容: 在我正在使用的Web应用程序中,用户可以单击指向CSV文件的链接。没有为mime- type设置标题,因此浏览器仅将其呈现为文本。我希望此文件以.csv文件的形式发送,因此用户可以直接使用calc,excel,gnumeric等打开它。 该代码可以在我的计算机上正常工作(不是一直如此吗?),但在另一台计算机上不起作用。 我的浏览器是FF 3.0.1(在Linux上)的每晚构建。它无法使

  • 我需要使用MIME发送POST请求- 这是我对POST标题的默认配置:

  • 问题内容: 从Node.js服务器向浏览器发送脚本时,在Google Chrome浏览器中,出现以下警告: 资源被解释为脚本,但以MIME类型文本/纯文本传输 我用Google搜索了一下,发现这是服务器端的问题,也就是说,我认为在发送事物之前,我应该为事物设置正确的MIME类型。这是HTTP服务器的处理程序: 问题: 如何更正服务器端代码以正确配置MIME类型? (注意:我已经找到https://

  • 问题内容: 我在注释驱动的Spring MVC Java Web应用程序中运行在Jetty Web服务器上运行(当前在Maven Jetty插件中)。 我正在尝试使用一种仅返回String帮助文本的控制器方法来提供一些AJAX支持。资源采用UTF-8编码,字符串也采用UTF-8编码,但是我来自服务器的回复是 即使我的浏览器发送 我正在以某种方式使用spring的默认配置 我发现了将这个bean添加