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


    @ResponseBody注解:

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

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

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

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

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

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

    1. <input type="button" value="测试@ResponseBody响应浏览器json格式的数据"@click="testResponseBody()"><br>
    2. <script type="text/javascript" th:src="@{/js/vue.js}">script>
    3. <script type="text/javascript" th:src="@{/js/axios.min.js}">script>
    4. <script type="text/javascript">
    5. var vue = new Vue({
    6. el:"#app",
    7. methods:{
    8. testResponseBody(){
    9. axios.post("/SpringMVC/test/ResponseBody/json").then(response=>{
    10. console.log(response.data);
    11. });
    12. }
    13. }
    14. });
    15. script>

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

    * 实体类----json对象

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

    * map----json对象

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

    * list----json数组

    1. //省略了一个手动将java对象转换为字符串的过程
    2. @RequestMapping("/test/ResponseBody/json")
    3. @ResponseBody
    4. public List testResponseBodyJson(){
    5. User user1 = new User(1001,"admin","12345",23,"🚹");
    6. User user2 = new User(1001,"admin","12345",23,"🚹");
    7. User user3 = new User(1001,"admin","12345",23,"🚹");
    8. User user4 = new User(1001,"admin","12345",23,"🚹");
    9. List list = new ArrayList<>();
    10. list.add(user1);
    11. list.add(user2);
    12. list.add(user3);
    13. list.add(user4);
    14. return list;
    15. }

  • 相关阅读:
    空间结构是可数的吗?
    react immutable
    大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST
    scipy 与 sympy 模块在数学建模中的应用
    【HTML+CSS】零碎知识点
    Java中的继承——详解
    C++【STL】【STL容器的使用与实现】
    【Network】网络基础扫盲
    npm install:sill idealTree buildDeps
    Typora修改图片保存位置
  • 原文地址:https://blog.csdn.net/xiaobaisimple/article/details/133143555