【SpringMVC】@ResponseBody注解响应浏览器数据

@ResponseBody注解:

1.将请求体中的内容和控制器方法中的形参进行绑定

2.使用@RequestBody注解将json格式的请求参数转化为java对象

服务器处理ajax请求之后,大多数情况都需要向浏览器响应一个java对象,此时必须将java对象转换为json字符串才可以响应到浏览器,之前我们使用操作json数据的jar包gson或jackson将java对象转换为json字符串。在SpringMVC中,我们可以直接使用@ResponseBody注解实现此功能

@ResponseBody响应浏览器json数据的条件:

1.导入jackson的依赖

    com.fasterxml.jackson.core
    jackson-databind
    2.12.1
2.SpringMVC的配置文件中设置开启mvc的注解驱动

3.使用@ResponseBody注解标识控制器方法

在方法中,将需要转换为json字符串并响应到浏览器的java对象作为控制器方法的返回值,此时SpringMVC就可以将此对象直接转换为json字符串并响应到浏览器


常用的java对象转换为json的结果:

* 实体类----json对象

//转化为实体类
   @RequestMapping("/test//RequestBody/json")
    public void testRequestBody(@RequestBody User user, HttpServletResponse response) throws IOException {
        response.getWriter().write("hello,RequestBody");
        //将请求体中的json格式转化为java对象
        System.out.println(user);
}

* map----json对象

@RequestMapping("/test//RequestBody/json")
    public void testRequestBody(@RequestBody Map map, HttpServletResponse response) throws IOException {
        response.getWriter().write("hello,RequestBody");
        //将请求体中的json格式转化为java对象
        System.out.println(map);
 }

* list----json数组

  //省略了一个手动将java对象转换为字符串的过程
    @RequestMapping("/test/ResponseBody/json")
    @ResponseBody
 public List testResponseBodyJson(){
        User user1 = new User(1001,"admin","12345",23,"");
        User user2 = new User(1001,"admin","12345",23,"");
        User user3 = new User(1001,"admin","12345",23,"");
        User user4 = new User(1001,"admin","12345",23,"");
      List list = new ArrayList<>();
      list.add(user1);
      list.add(user2);
      list.add(user3);
      list.add(user4);
        return list;
    }

你可能感兴趣的:(ssm,java,idea,servlet,spring,maven)