开发者社区> 问答> 正文

在SringMVC中使用JSR-303进行校验 @Valid无效:配置报错 

引入的jar包

<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency>

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.1.Final</version> </dependency>

Spring版本4.3,JDK7 实体类
public class Spitter { //private Long id;

//@NotNull
@Length(min=5,message="最小长度为5")
private String username;

//@NotNull
@Length(min=5,message="最小长度为5")
private String password;

//@NotNull
@Length(min=2,message="最小长度为5")
private String firstName;

//@NotNull
@Length(min=2,message="最小长度为5")
private String lastName;

public Spitter() {
}</pre> 

控制器

RequestMapping(value = "/register", method = POST) public String processRegistration(@Validated Spitter spitter, BindingResult errors){ if(errors.hasErrors()){ return "registerForm"; } System.out.println("has no errors"); spitterRepository.save(spitter); return "redirect:/spitter/" + spitter.getUsername(); }
debug时: 明明长度不符合,为什么不报错

展开
收起
kun坤 2020-06-01 00:09:46 587 0
1 条回答
写回答
取消 提交回答
  • 注解错了, @Valid######用@Valid也一样  ######@Configuration public class BeanValidatorConfiguration {   /** *使用hibernate 效验 *hibernate.validator.fail_fast 当出现一次错误,后面就不效验了 如果只有一个效验器,可以不用配置 / @Bean
    public Validator validator(){ ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class ) .configure() .addProperty( "hibernate.validator.fail_fast", "true" ) .buildValidatorFactory(); return validatorFactory.getValidator(); }   /
    *使用@Validated 注解。validator后处理,使所有有这个注解的类都会被aop切面 *spring boot 默认配置了,可以不用加 */   @Bean
    public MethodValidationPostProcessor methodValidationPostProcessor(){ MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor(); methodValidationPostProcessor.setValidator(validator()); return methodValidationPostProcessor; }   }######我新建了一个springMVC项目,只保留了一个bean,一个控制器和spring基本配置,包也只导入了这两个

    <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency>

    <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> </dependency>

    又没问题了,我再看看之前那个项目问题是什么把

    2020-06-01 00:09:51
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载