如何为验证器创建自定义消息?
我上课
@Size(min = 1,组= {Ato.Validar.class,Ato.Salvar.class}) 清单名称;
但是我不想在everty注释中添加message =“”,因此我在资源/语言环境中创建了一个messages_pt_BR.properties
创建课程:
@Configuration
public class LocaleConfiguration {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
Locale.setDefault(new Locale("pt","BR"));
localeResolver.setDefaultLocale(new Locale("pt","BR"));
return localeResolver;
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:locale/messages");
messageSource.setCacheSeconds(3600); //refresh cache once per hour
return messageSource;
}
}
我尝试使用的messages_pt_BR.properties:
Size=my custom message
Size.myClass.name=my custom message
Size.myClass.Name=my custom message
然后在我的控制器中输入:
public void myMethod(@RequestBody @Validated({Ato.Salvar.class}) MyObjectClass myObject)
但是,如果我发布且MyObjectClass没有name属性或一个空数组,则sprinboot返回默认消息(以我的语言pt_Br为例),但返回默认消息。