配置SpringBoot应用程序以将javax验证消息连接到messages.properties文件

时间:2016-07-22 17:21:40

标签: java validation spring-boot

我正在尝试将messages.properties文件插入到我的@Valid注释验证中。我无法获取@Valid注释以连接到messages.properties文件。

这是一个弹簧启动配置。 messages.properties文件位于resources文件夹中,我已将其添加到配置文件

@Configuration
public class config extends WebMvcConfigurerAdapter {

    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasename("messages");
        return messageSource;
    }

控制器我希望看到这些消息(在我开始尝试让它们显示在Thymeleaf模板中之前)就行了

RequestMapping(value = "sampleurl", method = RequestMethod.POST)
public String requestSamplePost(@ModelAttribute @Valid SampleForm     sampleForm, BindingResult bindingResult, Model model) {

//hoping to see the message from the messages file here  
System.out.println("Binding Result: " + bindingResult.toString());
 ...

pojo有这个内容

public class SampleForm {
    @NotEmpty ()
    @Email()
    private String email;
    …

messages.properties文件有这种内容

NotEmpty.SampleForm.email=THIS IS BESPOKE MESSAGE 1
Email.SampleForm.email=THIS IS BESPOKE MESSAGE 2

我得到的输出是

Field error in object 'sampleForm' on field 'email': rejected value  [jj]; 
codes [Email.sampleForm.email,Email.email,Email.java.lang.String,Email]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: 
codes [sampleForm.email,email]; arguments []; 
default message [email],[Ljavax.validation.constraints.Pattern$Flag;@6679140b,^[^{}|]*$]; 
default message [not a well-formed email address] 

任何人都可以

  1. 确认如果一切配置正确,我应该能够在bindingerrors对象中看到定制的消息。
  2. 告诉我哪里可能出错了?我确定在我之前使用过的标准Spring-MVC应用程序中需要做的所有配置但是我可能缺少一个步骤,或者是SpringBoot需要的其他配置?

0 个答案:

没有答案