【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;
    }
相关推荐
Full Stack Developme32 分钟前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
shushangyun_4 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..4 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
学渣超4 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
掉鱼的猫4 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc
带刺的坐椅5 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai
c238565 小时前
互斥锁高频面试题全解:从基础概念到底层实现,一文通关
java·c++·面试·职场和发展
error:(5 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
Tian_Hang6 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
小蓝波6 小时前
docker 的命令
java·docker·容器