spring mvc的validator如何支持String类型的参数

  1. 问题描述
    想用spring mvc的validator模块对请求参数通过注解的方式进行验证,看到JSR-303验证框架的资料,都是只支持对输入的bean进行验证,不能对String,Integer这样类型的参数进行验证。关于参数验证这样部分功能,在Spring中的主流的用法一般是怎样的?

  2. 相关代码

    @RequestMapping(value = "validString", method = RequestMethod.POST, produces = "application/json")
    public void validString(
            @RequestParam(value = "validString", defaultValue = "")
            @Valid
            @Size(min = 1, max = 10)
            final String vStr, BindingResult vResult){
        //
    }
  1. 尝试
    按照参考的资料,试验了绑定validator的方式,还有试验了bean注解的方式,对输入参数进行验证,这两种方式,都可以实现验证的功能,但是当需要验证String这类参数时,验证功能无效。

阅读 5.7k
2 个回答

使用@Valid标注要校验的参数vStr。当在SpringMVC中需要用JSR-303的时候,需要提供对JSR-303规范的实现,Hibernate Validator是实现了这一规范的。JSR-303的校验是基于注解的,它内部已经定义好了一系列的限制注解,我们只需要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
你没有对其进行实现,当然不会有校验啊。

兄弟,扶你一把,楼上说的我是懂了,但是弄不出来啊,还是给个传送门给你,https://docs.jboss.org/hibern...
hibernate社区官方已经在validation的jar里面支持了方法级别校验,可以看看我的提问和回答,这里主要给搜到这个问题的需要的人
传送门:https://segmentfault.com/q/10...

推荐问题
宣传栏