Rest请求方式:
好处:首先就是面向资源URI,即http请求的路径,Rest规定要求URI中各层只能用名词而不用动词,相比以前的get请求有利于传输数据的稳定性,数据的操作流程不易轻易被人识破,也便于团队开发,各种URI一目了然:
===GET------查询
===DELETE---删除
===PUT ---修改
===POST ---新增
符合这种风格的http请求,我们叫做它是Restful请求:
@RestController
@PathVariable:自动将rest请求匹配到同名参数上
@ModelAttribute:自动将请求的form表单参数 组装成对象
@RequestBody: 自动将请求的json参数 组装成对象
1---查询:
/**
* restful风格操作
* @param name
* @return
*/
@RequestMapping(value="/xx/{name}",method= RequestMethod.GET,produces="application/json;charset=UTF-8")
private String query( @PathVariable String name) {
String result = "查询一个名为"+name+"的结果";
return result;
}
2---新增:
/**
* 新增
* @param user
* @return
*/
@RequestMapping(value="/xx",method= RequestMethod.POST,produces="application/json;charset=UTF-8")
private String add(@RequestBody User user) {
String result = "新增一个名为"+user.getUsername()+",密码为"+user.getPassword()+"的结果";
return result;
}
3---
/**
* 删除
* @param username
* @return
*/
@RequestMapping(value="/xx/{username}",method= RequestMethod.DELETE,produces="application/json;charset=UTF-8")
private String del(@PathVariable String username) {
String result = "删除一个名为"+username+"的结果";
return result;
}
4---修改:
/**
* 修改
* @param user
* @return
*/
@RequestMapping(value="/xx",method= RequestMethod.PUT,produces="application/json;charset=UTF-8")
private String edit(@RequestBody User user) {
String result = "修改一个名为"+user.getUsername()+",密码为"+user.getPassword()+"的结果";
return result;
}
我们发现,post和put的参数由@ModelAttribute变成了@RequestBody;
这是因为我一开始通过postman模仿form表单提交【修改】,后台参数为null,百度之,众多高手,有的说spring不支持put请求,有的说form表单不支持PUT和DELETE,有的说需要个过滤器。
我也挨个试了一下,最后发现用json还是可以的:
原文链接:https://blog.csdn.net/qq_34582693/article/details/79981742