spring中的请求参数
2020-04-20 16:02:25来源:博客园 阅读 ()
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("/")
查询参数
- @RequestParam注解接收查询参数的名称,使用defaultValue可以设置默认值,defaultValue只接收String类型。如果变量名和查询参数名相同可以简写。下面的方法可以这样访问 /home/?name=muyu
@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();
}
路径参数
- @RequestMapping注解中用{ }作为占位符, 在处理方法中用@PathVariable注解使用占位符中的变量,占位符中的变量名与方法中的变量名相同可以简写,下面的方法可以这样访问 /rc/123
@RestController
@RequestMapping("/rc")
public class RestBodyController {
@GetMapping(value = {"/{id}"})
public String a(@PathVariable(value = "id") int id) {
// @PathVariable int id 简写形式
return "a => " + id;
}
}
表单参数
- 表单提交直接将JavaBean对象作为参数即可,对象的属性名要和表单项的name对应
<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();
}
原文链接:https://www.cnblogs.com/mywuhao/p/12740406.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash