Java 弹簧&x2B;Hibernate验证程序:更改默认消息(不工作)
所以我想让自定义默认消息正常工作,就像它在这里被多次询问(并解决)一样,但我仍然无法让它正常工作 到目前为止,我的代码是: 应用程序,javaJava 弹簧&x2B;Hibernate验证程序:更改默认消息(不工作),java,spring,hibernate,spring-mvc,hibernate-validator,Java,Spring,Hibernate,Spring Mvc,Hibernate Validator,所以我想让自定义默认消息正常工作,就像它在这里被多次询问(并解决)一样,但我仍然无法让它正常工作 到目前为止,我的代码是: 应用程序,java @Configuration @EnableAutoConfiguration @ComponentScan public class Application extends SpringBootServletInitializer { private static Class<Application> applicationClass =
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {
private static Class<Application> applicationClass = Application.class;
public static void main(String[] args) {
SpringApplication.run(applicationClass, args);
}
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
@Bean(name = "messageSource")
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource();
source.setBasename("WEB-INF/messages/messages");
source.setDefaultEncoding("UTF-8");
return source;
}
@Bean(name = "validator")
public LocalValidatorFactoryBean validator() {
LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean();
validatorFactoryBean.setValidationMessageSource(messageSource());
return validatorFactoryBean;
}
}
将工作正常,我得到我的自定义错误消息
但是
仍然输出标准默认消息
我怎样才能让它工作?:) 如果我没记错的话,验证程序getMessage使用了一个前缀。找出验证器试图获取哪些消息的最简单方法是断点.Sry,但我不明白你的意思。您能进一步解释一下吗?result.getFieldError(“projectName”):返回与给定字段关联的第一个错误。我相信在您的情况下也会发生同样的情况。我不知道这会如何影响错误消息…要检查使用了哪个消息键,请在此处设置断点来调试您的应用程序:
org.hibernate.validator.internal.engine.ValidationContext.interpolate()
(v5.0.2中的第362行)
messageSource.getMessage(result.getFieldError("projectName"), null)
result.getFieldError("projectName").getDefaultMessage()