ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

19.springmvc对ajax的支持

2022-05-08 22:35:35  阅读:171  来源: 互联网

标签:name Person 19 18 age springmvc ajax 吴孟达 new


@ResponseBody使用:将响应数据放入到响应体中

只要返回的数据是json数据即可!

1.导入jackson的包
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.5.0</version>
    </dependency>
2.写控制类:
        /**
        将返回的数据放入到响应体中
        如果返回的是对象就由jackson自动转换成json
        **/
        @Controller
        public class AjaxTest {
            @ResponseBody-------------->必须加上这个注解
            @RequestMapping("/getPersonList")
            public List<Person> getpersonList(){
                Person P1=new Person("吴孟达",18,new Book("西游记",18.0,"吴承恩"));
                Person P2=new Person("吴孟达",18,new Book("西游记",18.0,"吴承恩"));
                Person P3=new Person("吴孟达",18,new Book("西游记",18.0,"吴承恩"));
                Person P4=new Person("吴孟达",18,new Book("西游记",18.0,"吴承恩"));
                List<Person> list=new ArrayList<>();
                list.add(P1);
                list.add(P2);
                list.add(P3);
                list.add(P4);
                return list;
            }
        }
3.最重要的一点是:开启springmvc的无敌注解模式
    <mvc:annotation-driven></mvc:annotation-driven>

4.发送请求:http://localhost:8080/getPersonList
    返回的是:json字符串
        [
              {
                "name": "吴孟达",
                "age": 18,
                "book": {
                  "bookName": "西游记",
                  "price": 18.0,
                  "autor": "吴承恩"
                }
              },
              {
                "name": "吴孟达",
                "age": 18,
                "book": {
                  "bookName": "西游记",
                  "price": 18.0,
                  "autor": "吴承恩"
                }
              },
              {
                "name": "吴孟达",
                "age": 18,
                "book": {
                  "bookName": "西游记",
                  "price": 18.0,
                  "autor": "吴承恩"
                }
              },
              {
                "name": "吴孟达",
                "age": 18,
                "book": {
                  "bookName": "西游记",
                  "price": 18.0,
                  "autor": "吴承恩"
                }
              }
            ]
 
5.Jackson的一些常用注解
    1. @JsonIgnore注解:json格式化时会忽略该属性
            public class Person {
                private String name;
                private Integer age;
                @JsonIgnore
                private Book book;
                ...
            }
        同样的请求输出:没有了book属性
            [
                  {
                    "name": "吴孟达",
                    "age": 18
                  },
                  {
                    "name": "吴孟达",
                    "age": 18
                  },
                  {
                    "name": "吴孟达",
                    "age": 18
                  },
                  {
                    "name": "吴孟达",
                    "age": 18
                  }
                ]
        2.@JsonFormat(pattern = "YYYY-mm-dd")格式化日期等等!
@RequestBody的用法
1.直接拿到请求的请求体
2.一般post方法才会有请求体,get请求的请求参是在路径上加的

3.控制类写法:
    @Controller
    public class AjaxTest {
        @RequestMapping("/getPersonList")
        public List<Person> getpersonList(@RequestBody String requestBody){
            System.out.println("请求体:"+requestBody);
        }

4.页面jsp写法:
    必须是post请求:
    <form action="/getPersonList" method="post">
        账号:<input type="text" name="username">
        密码:<input type="text" name="password">
        <input type="submit" value="提交">
    </form>

    5.可以输出输入框中写的数据如下:
        请求体:username=wmd&password=123456
ajax发送json字符串,后台控制器直接使用实体类来接收,加上@RequestBody可以自动进行转换

标签:name,Person,19,18,age,springmvc,ajax,吴孟达,new
来源: https://www.cnblogs.com/wmd-l/p/16247250.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有