我想做的是有一个标准的错误消息,它使用注释来填写所述错误消息的值。代码应该有助于解释。
我有一个模型 POJO,上面有带有 JSR-303 注释的字段,如下所示:
@Min(value = 1)
@Max(value = 9999)
private int someInt;
目前,我有两个属性文件:一个用于保存我的字段的标签,另一个用于保存实际消息:
label.someInt=Some Integer Field
Min="{0}" must be no less than {value}
然后我遍历东西来构建我想要的东西:
for (FieldError a : result.getFieldErrors()) {
boolean found = false;
for (String b : a.getCodes()) {
System.out.println(b);
try {
addErrorMessage(messageSource.getMessage(b,
new Object[] { new DefaultMessageSourceResolvable(
new String[] { "label." + a.getField() }
)},
null));
found = true;
break;
} catch (Exception e){/* nom Exception */}
}
if (!found) {
addErrorMessage(a.getDefaultMessage());
}
}
这一切都很好而且很花哨,但我希望能够坚持基于注释的做事方式并在字段上添加某种标签。例如:
@Min(value = 1)
@Max(value = 9999)
@Label(value = "Some Integer Field")
private int someInt;
然后我可以编写一个辅助函数,它只使用注释来标记我在属性文件中的错误消息。我还需要它来处理基于 Spring 的验证错误,例如 typeMismatch。有趣的东西,那个。
在此先感谢您的帮助!