版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_38151745/article/details/83375897
spring mvc 允许以多种方式将客户端中的数据传送到控制器的处理器方法中,包括以下几种
查询参数
表单参数
路径参数
1. 查询参数:
使用@RequstParam 注解 声明参数名称和类型 。一般来说 spring boot 现在支持直接使用类型和参数名称 不需要使用注解
2. 路径参数
将参数放入需要提交的url 路径中 为了实现路径参数, spring 允许我们在requestMapping 注解的路径中使用占位符 ( 大括号{} ) 路径的其他部分与请求的路径完全匹配,占位符部分可以是任意值
格式为
@RequestMapping(value="/test/{name}")
public void test(@PathVariable String name){
}
需要注意的是 ,占位符的参数名称 必须和方法的参数名相同
3. 表单参数
Spring MVC 提供了一种绑定机制,通过该机制可以从用户请求中提取数据,然后将数据转换为预定义的数据格式,最后映射到一个模型类,从而创建对象,SpingMVC 实现这种绑定机制非常简单,只需要请求参数名称和java 类的属性相匹配即可,从而使Web 开发变得非常简单明了
所以在接受表单参数时 ,使用一个java类来接受前台form 表单里面的数据 ,通过post 方法将数据 提交到后台 需要注意的是 ,前台form 表单中 ,提交的HTML 元素的 name 需要和 后台的实体类的属性一一对应
表单参数的校验
spring 提供表单校验的方法 通过使用注解(这些注解来源于JSR-303 规范 ,它详细规定了 bean 的校验功能。 ),将注解放在类的属性上,从而限制属性的值
public class User {
@NotNull
@Size(min = 1,max = 22)
private String name;
@Min(0) @Max(200)
private Integer age;
}
为了使校验功能运行起来,需要添加一些内容,首先 , 控制器需要声明在表单提交时, 它希望得到一个合法的模型,在代表表单的参数上添加一个 Valid 注解 就可以实现该功能 同时 ,使用BindingResult 来接收参数是否错误的判断
@RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody
public String add(@Valid User user , BindingResult bindingResult){
if (bindingResult.hasErrors()){
//这里可以进行自定义操作
System.out.println(bindingResult);
}
System.out.println(user.toString());
return "add user success";
}