Java Spring Thymeleaf Hibernate验证自定义消息在第页不可用

Java Spring Thymeleaf Hibernate验证自定义消息在第页不可用,java,spring,validation,thymeleaf,hibernate-validator,Java,Spring,Validation,Thymeleaf,Hibernate Validator,在下面的示例中,我有一条关于@DecimalMin注释的自定义消息。从输出中,您可以看到默认消息在控制器方法中正确插入 问题是我想在html页面上使用此消息。问题是thymeleaf会抓取代码列表中的第一个代码。我希望它使用自定义代码{grossPay.custom.message},但它已经被解析。此外,它不可用作错误代码 如有任何建议,将不胜感激 //inside propery file grossPay.custom.message=Dont do that //inside mode

在下面的示例中,我有一条关于@DecimalMin注释的自定义消息。从输出中,您可以看到默认消息在控制器方法中正确插入

问题是我想在html页面上使用此消息。问题是thymeleaf会抓取代码列表中的第一个代码。我希望它使用自定义代码{grossPay.custom.message},但它已经被解析。此外,它不可用作错误代码

如有任何建议,将不胜感激

//inside propery file
grossPay.custom.message=Dont do that

//inside model
@DecimalMin(value="0.00",message="{grossPay.custom.message}")

//inside controller
public String postResult(@Valid @ModelAttribute("myModel") CustomModel model, BindingResult result) {
for (FieldError error : result.getFieldErrors()) {
                System.out.println("Field Error in field: " + error.getField() + " with default message: "+ error.getDefaultMessage());
                System.out.println("codes: ");
                for (String s : error.getCodes()) {
                    System.out.println(s);
                }
}

//output
Field Error in field: grossPay with default message: Dont do that
codes: 
DecimalMin.customModel.grossPay
DecimalMin.grossPay
DecimalMin.java.math.BigDecimal
DecimalMin

这是由于缺少配置造成的。您需要在配置中定义以下内容:

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Autowired
    private MessageSource messageSource;

    @Override
    public Validator getValidator() {
        LocalValidatorFactoryBean factory = new LocalValidatorFactoryBean();
        factory.setValidationMessageSource(messageSource);
        return factory;
    }
}

请参阅:

您解决过这个问题吗?