SpringMVC 中 HttpMessageConverter<T>

简介: HttpMessageConverter负责将请求信息转换为一个对象(类型为T),将对象(类型为T)输出为响应信息。下面我们说一下如何使用。使用HttpMessageConverter将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息,SpringMVC提供了两种途径:使用@RequestBody或@ResponseBody对处理方法进

HttpMessageConverter负责将请求信息转换为一个对象(类型为T),将对象(类型为T)输出为响应信息。

这里写图片描述

下面我们说一下如何使用。

使用HttpMessageConverter将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息,SpringMVC提供了两种途径:

  • 使用@RequestBody或@ResponseBody对处理方法进行标注
  • 使用HttpEntity< T >或 ResponseEntity< T >作为处理方法的入参或返回值

说明:不需要成对的出现。

当控制器处理方法使用到@RequestBody或@ResponseBody或HttpEntity< T >或ResponseEntity< T >时,SpringMVC首先根据请求头或者响应头的Accept属性选择匹配的HttpMessageConverter,进而根据参数类型或泛型类型的过滤得到匹配的HttpMessageConverter,若找不到可用的HttpMessageConverter将报错。

我们看看实例。

这里写图片描述

前台index.jsp加一句就行

<a href="testResponseEntity">Test ResponseEntity </a>

这里写图片描述

就会把文件下载下来。

目录
相关文章
|
Java Apache 容器
Invalid &lt;url-pattern&gt; /admin/*.jsp in filter mapping
完成错误信息 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.
1174 0
|
6月前
|
JSON 前端开发 数据格式
@RequestBody、@RequestParm、@PathVariable三个注解的区别
@RequestBody、@RequestParm、@PathVariable三个注解的区别
511 2
|
JSON Java 数据格式
SpringMVC-@RequestMapping的参数和用法
SpringMVC-@RequestMapping的参数和用法
155 0
|
Java 数据库连接 mybatis
Mybatis &lt;if&gt; 判断中注意不能使用AND
Mybatis &lt;if&gt; 判断中注意不能使用AND
94 0
|
应用服务中间件 Apache nginx
YII2.0里面的&#39;showScriptName&#39; =&gt; false是干什么的?
YII2.0里面的&#39;showScriptName&#39; =&gt; false是干什么的?
156 0
|
Java Spring
spring data jpa中@Query中的模糊查询&lt;like关键字&gt;
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tomnic_ylwang/article/details/47340799 ...
2472 0
|
Java
SpringMVC,JSP里treeselect的value值EL表达式报错!500,property not found on type
treeselect是一个列表选框,value是持久层提供的实际值。如果没有value则无法保存默认回显的值。 <sys:treeselect id="" name="" value="${entity.sPnum}" labelName="" labelValue="" title="" url="" extId="" cssClass="form-control" allowClear="true"/> 这段代码无法正常打开页面,f12报get 500,可以判断是后台出错。
1302 0
|
Java 数据库连接 mybatis
MyBatis 返回 List&lt;String&gt; mapperxml怎么写?
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/80742083 有时候,我们不需要整个表的所有字段,而是只需要某一个字段的内容,比如:我希望从资产表中查出所有资产的名称,并且不存在重复。
5405 0
|
前端开发 容器 应用服务中间件
SpringMVC 处理静态资源 &lt;mvc:default-servlet-handler/&gt;
SpringMVC 处理静态资源: 1. 为甚么会有这样的问题: 优雅的 REST 风格的资源URL 不希望带 .html 或 .do 等后缀 若将 DispatcherServlet 请求映射配置为 / , 则SpringMVC 将捕获WEB 容器的所有请求, 包括静态资源的请求, SpringMVC
2574 0