spring中的请求参数,
分享于 点击 46513 次 点评:71
spring中的请求参数,
spring中的请求参数
创建:2020/4/20
环境:spring-boot 2.2.6.RELEASE
修改:2020/4/20
@RequestMapping注解可以接收字符串数组,类级别的作用于所有方法,方法的访问路径是类级别与方法级别相结合。下面a方法的访问路径有 /mu/a, /mu/b, /yu/a, /yu/b
@RestController注解是@Controller和@ResponseBody的组合注解。使用@ResponseBody注解可以返回数据而不是页面,可以放置在方法或者类上面,类级别作用于所有方法。
@RestController
@RequestMapping(value = {"/mu", "/yu"})
public class RestBodyController {
@RequestMapping(value = {"/a", "/b"}, method = RequestMethod.GET)
public String a() {
return "a";
}
}
@RequestMapping注解还可以设定请求方法,对于各种请求方法还有对应简化的注解
@RequestMapping(value = "/", method = RequestMethod.GET) 等同于 @GetMapping("/")
@RequestMapping(value = "/", method = RequestMethod.POST) 等同于 @PostMapping("/")
@RequestMapping(value = "/", method = RequestMethod.DELETE) 等同于 @DeleteMapping("/")
@RequestMapping(value = "/", method = RequestMethod.PUT) 等同于 @PutMapping("/")
@RequestMapping(value = "/", method = RequestMethod.PATCH) 等同于 @PatchMapping("/")
查询参数
@GetMapping("/home")
public String home(@RequestParam("name")String name) {
// @RequestParam String name 简写形式
// @RequestParam(value = "name", defaultValue = "muyu") String name 设置默认值
// @RequestParam(defaultValue = "muyu") String name 设置默认值时也可以简写
return "home";
}
- 也可以将参数设置为JavaBean对象,此时查询参数名要与对象属性名相同,下面的方法可以这样访问 /?username=muyu&password=123
// User.java
public class User {
private String username;
private String password;
public User() {}
// 省略getter和setter方法
}
@ResponseBody
@GetMapping("/")
public String b(User user) {
return user.toString();
}
路径参数
@RestController
@RequestMapping("/rc")
public class RestBodyController {
@GetMapping(value = {"/{id}"})
public String a(@PathVariable(value = "id") int id) {
// @PathVariable int id 简写形式
return "a => " + id;
}
}
表单参数
<form action="/form" method="post">
<label for="username">用户名</label>
<input type="text" id="username" name="username">
<label for="password">密码</label>
<input type="text" id="password" name="password">
<button type="submit">提交</button>
</form>
@ResponseBody
@PostMapping("/form")
public String postForm(User user) {
return user.toString();
}
- 对于表单的提交,我们可能还需要对表单内容进行校验
修改User类,注解@NotNull表示此属性不能为null,注解@Size设定了最大和最小字符串长度
// User.java
public class User {
@NotNull
@Size(min = 3, max = 5)
private String username;
@NotNull
@Size(min = 3, max = 5)
private String password;
public User() {}
// 省略getter和setter方法
}
使用@Valid注解开启对该对象的校验,当校验失败时errors.hasErrors()就会返回真
@ResponseBody
@PostMapping("/form")
public String postForm(@Valid User user, Errors errors) {
if(errors.hasErrors()) {
// 可以在此处进行校验失败后的操作
return "失败";
}
return user.toString();
}
相关文章
- 暂无相关文章
用户点评