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

@ResponseBody注解:

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

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

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

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

1.导入jackson的依赖
XML 复制代码
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.1</version>
</dependency>
2.SpringMVC的配置文件中设置开启mvc的注解驱动
XML 复制代码
<!--开启mvc的注解驱动-->
<mvc:annotation-driven />
3.使用@ResponseBody注解标识控制器方法

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

html 复制代码
<input type="button" value="测试@ResponseBody响应浏览器json格式的数据"@click="testResponseBody()"><br>
<script type="text/javascript" th:src="@{/js/vue.js}"></script>
<script type="text/javascript" th:src="@{/js/axios.min.js}"></script>
<script type="text/javascript">
    var vue = new Vue({
        el:"#app",
        methods:{
            testResponseBody(){
                axios.post("/SpringMVC/test/ResponseBody/json").then(response=>{
                    console.log(response.data);
                });
            }
        }
    });
</script>

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

* 实体类----json对象

java 复制代码
//转化为实体类
   @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对象

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

* list----json数组

java 复制代码
  //省略了一个手动将java对象转换为字符串的过程
    @RequestMapping("/test/ResponseBody/json")
    @ResponseBody
 public List<User> 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<User> list = new ArrayList<>();
      list.add(user1);
      list.add(user2);
      list.add(user3);
      list.add(user4);
        return list;
    }
相关推荐
0xDevNull5 小时前
Java反射机制深度解析:从原理到实战
java·开发语言·后端
华科易迅5 小时前
MybatisPlus增删改查操作
android·java·数据库
AugustRed5 小时前
基于现有的 Controller 接口 API 暴露 MCP
spring·mcp
WZTTMoon5 小时前
Spring Boot 中Servlet、Filter、Listener 四种注册方式全解析
spring boot·后端·servlet
standovon6 小时前
Spring Boot整合Redisson的两种方式
java·spring boot·后端
IAUTOMOBILE6 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
hutengyi6 小时前
PostgreSQL版本选择
java
皮皮林5516 小时前
重磅!JetBrains 正式发布全新的 AI 开发工具,定名 AI IDE AIR
java·intellij idea
MX_93597 小时前
SpringMVC请求参数
java·后端·spring·servlet·apache
ID_180079054737 小时前
小红书笔记评论 API,Python 调用示例与完整 JSON 返回参考
java·开发语言