spring 请求参数的输入 以及表单数据校验

版权声明:本文为博主原创文章,未经博主允许不得转载。 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";
    }

猜你喜欢

转载自blog.csdn.net/github_38151745/article/details/83375897