SpringMVC回写数据方式方法

x33g5p2x  于2022-07-14 转载在 Spring  
字(4.0k)|赞(0)|评价(0)|浏览(644)

回写数据

1、直接返回字符串

将字符串转成json格式回传到客户端

2、直接返回对象或集合      

使用SpringMVC自动将对象或集合转化为json格式

注解方式优化转化json

mvc命名空间

回写数据

1、直接返回字符串

Web基础截断,客户端访问服务器端,如果想直接回写字符串作为响应题返回的话,只需要使用response.getWrite().print("KCandZH")即可,所以在Controller中想直接回写字符串,可以直接在方法中写入response。
方法1:通过SpringMVC框架注入的response对象,使用response.getWrite().print("hello")回写数据,此时不需要视图跳转,业务方法返回值为void

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="user")
  4. public class userController {
  5. @RequestMapping("/quick6")
  6. public void save6(HttpServletResponse response) throws IOException {
  7. response.getWriter().print("hello itcase");
  8. }
  9. }

②将需要回写的字符串直接返回,但需要通过**@ResponseBody**注解告知SpringMVC框架,方法返回的字符串不是跳转某个视图,而是直接在http响应体重返回。(加上则不会进行前后缀拼接)

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="user")
  4. @ResponseBody//告诉SpringMVC框架不进行视图跳转,而是直接进行数据响应
  5. public class userController {
  6. @RequestMapping("/quick7")
  7. public String save7(HttpServletResponse response) throws IOException {
  8. return "hello itcase";
  9. }
  10. }

将字符串转成json格式回传到客户端

user类下

  1. package com.pojo;
  2. public class User {
  3. private int age;
  4. private String username;
  5. public User() {
  6. }
  7. public void setAge(int age) {
  8. this.age = age;
  9. }
  10. public void setName(String username) {
  11. this.username = username;
  12. }
  13. }

userController类下

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="user")
  4. public class userController {
  5. @RequestMapping("/quick9")
  6. @ResponseBody
  7. public String save9() throws JsonProcessingException {
  8. User user=new User();
  9. user.setAge(30);
  10. user.setName("lisi");
  11. //使用json的转换工具将对象转换成json格式字符串再返回
  12. ObjectMapper objectMapper=new ObjectMapper();
  13. String json = objectMapper.writeValueAsString(user);
  14. return json;
  15. }
  16. }

    要使用json转换工具,还得导入依赖

  1. <!-- 导入json相关依赖 -->
  2. <dependency>
  3. <groupId>com.fasterxml.jackson.core</groupId>
  4. <artifactId>jackson-core</artifactId>
  5. <version>2.9.0</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.fasterxml.jackson.core</groupId>
  9. <artifactId>jackson-databind</artifactId>
  10. <version>2.9.0</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.fasterxml.jackson.core</groupId>
  14. <artifactId>jackson-annotations</artifactId>
  15. <version>2.9.0</version>
  16. </dependency>

运行结果

2、直接返回对象或集合      

使用SpringMVC自动将对象或集合转化为json格式

通过SpringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理器适配器配置消息转换参数是,指定使用jackson进行对象或集合的转换,因此需要在spring-mvc.xml中进行这样配置
配置spring-mvc.xml中处理器映射器

  1. <!--配置处理器映射器 (将指定的对象或集合转为json格式) -->
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  3. <property name="messageConverters">
  4. <list>
  5. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
  6. </list>
  7. </property>
  8. </bean>

 在userController类中                                                                                                             

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="user")
  4. public class userController {
  5. @RequestMapping("/quick10")
  6. @ResponseBody
  7. //配置完成处理器映射器后,SpringMVC会将USer转化为json格式
  8. public User save10() throws JsonProcessingException {
  9. User user=new User();
  10. user.setAge(32);
  11. user.setName("lisi2");
  12. return user;
  13. }
  14. }

运行结果

 注解方式优化转化json

在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。

  1. <!--mvc的注解驱动-->
  2. <mvc:annotation-driven/>

在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。使用mvc:annotation-driven自动加载RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter(处理适配器),可用在Spring-xml.xml配置文件中使用mvc:annotation-driven替代注解处理器和适配器的配置。
同时使用<mvcannotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换

 mvc命名空间

因为使用了mvc命名空间,所以得导入mvc

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:mvc="http://www.springframework.org/schema/mvc"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  5. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

在spring-mvc.xml配置文件中

  1. <!-- 配置注解驱动-->
  2. <mvc:annotation-driven/>

这样就完成了注解配置

相关文章