标签:jackson 进阶 SpringMVC json ResponseBody ajax user id
1. ajax异步交互
springMVC默认使用MappingJackson2HttpMessageConverter对json数据进行格式转换,需要导入Jackson的包并同时配置处理器适配器和处理器映射器
<!-- 导入Jackson包--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency>
<!-- 配置处理器适配器和处理器映射器 ,可以对json格式解析,进行了方法的增强--> <mvc:annotation-driven />
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2021/7/17 Time: 17:19 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>ajax</title> </head> <body> <script src="${pageContext.request.contextPath}/js/jquery-3.5.1.js"></script> <button id="btn1">ajax异步处理</button> <script> $("#btn1").click(function () { //请求地址 let url ="${pageContext.request.contextPath}/ajax"; // 请求数据 let data='[{"id":1,"username":"张三"},{"id":2,"username":"李四"}]'; $.ajax({ type:'POST', url:url, data:data, contentType:'application/json:charset=utf-8', success:function (resp) { alert(JSON.stringify(resp)); } }) }) </script> </body> </html>
- @RequestBody:当使用ajax提交并制定contentType为json格式时,需要通过HttpMessageConverter接口将json格式转为对应的POJO对象
- @ResponseBody:当将POJO对象返回时,通过HttpMessageConverter接口转换为制定的json,xml格式等,通过response响应给客户端
@RequestMapping("/ajax") @ResponseBody public List<User> ajax(@RequestBody List<User> list){ System.out.println(list); return list; }
2. RESTful
- Restful是一种软件架构风格,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件,能更简洁更有层次的实现缓存机制
- Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP协议中的操作方式为GET,POST,PUT,DELETE
客户端请求 | 原来风格URL地址 | RESTful风格URL地址 |
查询所有 | /user/findAll | GET /user |
根据ID查询 | /user/findById?id=1 | GET /user/{1} |
新增 | /user/save | POST /user |
修改 | /user/update | PUT /user |
删除 | /user/delete?id=1 | DELETE /user/{1} |
- @PathVariable:用于接受RESTful请求地址中的占位符的值
- @RestController=@Controller+@ResponseBody,简化开发,前端通过ajax与服务器进行异步交互,处理器将json数据返回
@GetMapping("/user/{id}")// 等同于@RequestMapping(path = "/user/{id}",method = RequestMethod.GET) // @Controller + @ResponseBody 的作用等同于 @RestController public String find(@PathVariable Integer id){ return "findbyId:"+id; } @PostMapping(value = "/user") // @ResponseBody public String post() { return "post"; } @PutMapping(value = "/user") // @ResponseBody public String put() { return "put"; } @DeleteMapping(value = "/user/{id}") // @ResponseBody public String delete(@PathVariable Integer id) { return "delete:"+ id; }
标签:jackson,进阶,SpringMVC,json,ResponseBody,ajax,user,id 来源: https://www.cnblogs.com/forever-fate/p/15024420.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。