2011-04-07 47 views
0

我想要做的是有一个标准的错误消息,使用注释填写上述错误消息的值。代码应该帮助解释。JSR-303与春天和休眠混合的错误消息

我有了与JSR-303注解这样就可以域模型POJO:

@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。有趣的东西,那。

在此先感谢您的帮助!

回答