Spring5, 通过key不能获取validateMessages内容(validated, message,分组验证)

1.Config文件内容

    @Bean
    public ReloadableResourceBundleMessageSource messageSource(){
        ReloadableResourceBundleMessageSource msg = new ReloadableResourceBundleMessageSource();
        msg.setDefaultEncoding("UTF-8");
        msg.setBasenames("classpath:validationMessages");
        return msg;
    }
    
    @Bean
    public LocalValidatorFactoryBean validator(){
        LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
        validator.setValidationMessageSource(messageSource());
        return validator;
    }
    
    @Override #非常关键!!!
    public org.springframework.validation.Validator getValidator() {
        return validator();
    }


2.Controller文件

public JsonDto show( @Validated({ ValidateGroup.Group1.class }) BabyForm babyForm, BindingResult rs)    

为什么用Validated?因为有分组验证功能!同样的Entity,在不同的方法中需要验证的对象不同,这时候就需要分组了。

 

3.BabyForm文件
    @NotNull(message="{Form.birthDate.null}", groups = { Validate.Group2.class })
    private String[] birth;
    @NotNull(message="{Form.updateTime.null}", groups = { Validate.Group1.class })
    private String[] update;

4.ValidateMessages文件

   Form.updateTime.null=需要更新日期信息。
   Form.birthDate.null=需要生日信息。

你可能感兴趣的:(技术调查,JAVA)