java Spring对象错误getDefaultMessage()编码
我使用的是@Valid注释,当错误mesage有特殊字符时,它们总是显示不正确
public class Test {
@NotEmpty(message = "{test}")
private String test;
//omitted getter and setter
}
验证消息。特性:
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()));
}
}
春季信息资源:
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 楼答案
确保
ValidationMessages.properties
是UTF-8
编码的。使用文本编辑器(例如Notepad++)或IDE更改编码