springmvc之HttpMessageConverter

来源:互联网 发布:ip地址是阿里云 编辑:程序博客网 时间:2024/05/14 03:28

1.pom.xml:

<dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.11</version>      <scope>test</scope>    </dependency>    <dependency>    <groupId>commons-logging</groupId>    <artifactId>commons-logging</artifactId>    <version>1.1.3</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-core</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-beans</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-expression</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-web</artifactId>    <version>4.0.5.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-tx</artifactId>    <version>4.0.5.RELEASE</version></dependency>        <dependency>    <groupId>commons-logging</groupId>    <artifactId>commons-logging</artifactId>    <version>1.1.1</version></dependency><dependency>    <groupId>org.hibernate</groupId>    <artifactId>hibernate-validator</artifactId>    <version>4.3.0.Final</version></dependency><dependency>    <groupId>org.jboss.logging</groupId>    <artifactId>jboss-logging</artifactId>    <version>3.1.0.CR2</version></dependency><dependency>    <groupId>javax.validation</groupId>    <artifactId>validation-api</artifactId>    <version>1.0.0.GA</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.6.4</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-core</artifactId>    <version>2.6.4</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-annotations</artifactId>    <version>2.6.4</version></dependency>  </dependencies>

2.控制器:

@RequestMapping("/viewResolver")@Controllerpublic class ViewResolver {@ResponseBody@RequestMapping("/testHttpMessageConverter")public String testHttpMessageConverter(@RequestBody String body){System.out.println(body);return new Date()+"";}}
3.页面:

<form action="viewResolver/testHttpMessageConverter" method="post" enctype="multipart/form-data">    File:<input type="file" name="file"/><br>    desc:<input type="text" name="desc"/><br>    <input type="submit" value="提交"/>    </form>
4.结果



文件内容:


上面实现了文件上传

HttpMessageConverter是负责将请求信息转化为对象,将对象输出为响应信息。

通过使用HttpMessageConverter将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息。

spring提供的两种方式:

@ResponseBody/@RequestBody :对处理方法进行注解。

@HttpEntity/@ResponseEntity :作为处理方法的入参或返回值。

当控制器处理方法用到以上注解时,首先根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter,进而根据参数类型或泛型类型,然后得到匹配的HttpMessageConverter。如果没有匹配的,那么就报异常。





0 0