@RequestMapping("/test1")
public String test1(HttpServletRequest request) {
User user = new User();
user.setName(request.getParameter("name"));
user.setAge(Integer.valueOf(request.getParameter("age")));
user.setMoney(Double.parseDouble(request.getParameter("money")));
return JSON.toJSONString(user);
}
最原始的接收参数方式,可以接收url params 传参,支持post from类型传参,不支持JSON传参
@RequestMapping(value = "/test2")
public String test2(@RequestParam("name") String name,
@RequestParam("age") Integer age
) {
return name;
}
这种格式接收的是 /test2?name=zhangsan&age=15
格式的传参
@RequestParam
如果不写,就要求跟url地址中携带的参数名完全一致
这种形式传参与请求方式无关,Get,Post,Put 等皆可
@RequestMapping(value = "/test3")
public String test3(User user) {
return JSON.toJSONString(user);
}
这种方式要求请求中的参数名与实体中的属性名一致即可自动映射到实体属性中;
支持url拼接的多个params 传参
支持post请求 的form类型传参(form-data,x-www-form-urlencoded),不支持JSON 传参
@PostMapping(value = "/test4")
public String test4(@RequestBody User user) {
return JSON.toJSONString(user);
}
@RequestBody
是接收请求体中的JSON 字符串参数直接映射实体对象,所以body类型必须是JSON字符串;而且实体类中的属性名称必须与JOSN串中的参数key名称完全一致,不同命参数无法正确接收;
此种传参方式,推荐使用 Post请求
@RequestMapping(value = {"/test5/{name}/{age}"})
public String method07(@PathVariable("name") String name,
@PathVariable(value = "age", required = false) Integer age
) {
User user = new User();
user.setName(name);
user.setAge(age);
return JSON.toJSONString(user);
}
/test5?/zhangsan/25
通过 @PathVariable
实现 RestFul 风格传参,直接将参数拼接到url地址中,支持Get,Post,Put,Delete 等多种请求
required属性默认为true,不传递参数会报错;
如果出现某个参数可以不传递的情况,可以通过设置required属性为false
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/su2231595742/article/details/122663730
内容来源于网络,如有侵权,请联系作者删除!