Spring ObjectError getDefaultMessage()编码

时间:2014-12-08 18:08:26

标签: java spring encoding

我正在使用@Valid注释,当错误消息具有特殊字符时,它们始终显示不正确。

public class Test {
 @NotEmpty(message = "{test}")
 private String test;
 //omitted getter and setter
}

ValidationMessages.properties:

test=Número

错误处理:

private void handleBindException(final Exception ex, final Result res) {
    BindException bex = (BindException) ex;
    for (ObjectError error : bex.getAllErrors()) {
        res.addError(new ErrorCode(error.getCode(), error.getDefaultMessage()));
    }
}

Spring MessageResouce:

public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();
        ms.setBasename("classpath:ValidationMessages");
        ms.setUseCodeAsDefaultMessage(true);
        ms.setDefaultEncoding("UTF-8");
        ms.setCacheSeconds(0);
        return ms;
    }

最终结果:

Número

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

确保ValidationMessages.propertiesUTF-8编码。使用文本编辑器(例如Notepad ++)或IDE更改编码。