2011-12-06 50 views
1

我試圖對我的項目實施驗證服務。我的驗證代碼如下所示:驗證和消息加入Spring框架

public class UserValidator implements Validator{ 

    public boolean supports(Class<?> clazz) { 
     return Ort.class.isAssignableFrom(clazz); 
    } 

    public void validate(Object target, Errors errors) { 
     Ort ort = (Ort) target; 
     if((ort.getcountryname().length() == 0) && (ort.getzip().length() == 0)) 
     { 
     errors.reject("error.zip"); 
     errors.reject("error.countryname"); 
     } 

    } 

} 

我有一個消息,XML與他以下條目: 代碼:

...... 
error.zip=There is an Error at Zip-Code 
error.countryname=There is an Error at Countryname 

,一切工作正常。我做的outprint在我的JSP中: 代碼:

<form:errors path="*" cssClass="error message" element="div"/> 

我的HTML代碼看起來是這樣的,如果我得到一個錯誤: 代碼:

There is an Error at Zip-Code<br>There is an Error at Countryname 

我的問題: 我如何加入該消息使我得到一個outprint我用jsp看起來如此: 代碼:

There is an Error at Zip-Code, There is an Error at Countryname 

能做些什麼somethink像塔在我的驗證課?

代碼:

...... 
     errors.reject("error.zip"+"error.countryname"); 
...... 
+0

對不起,我必須說出來,但你應該defintly看看JSR 303 Bean驗證支持春天。 – Ralph

+0

嗨,謝謝你的回覆:)但是在所有的文件中我找不到答案,我可以如何組合消息字符串。所以我的問題是我可以創建一個包含我喜歡的所有消息字符串的對象類型?所以我可以這樣做:TheObjectIdontKnow = name = new TheObjectIdontKnow(); name =(「一個正常的字符串」+「message.from.messagefile」+「,」+「SecondMessage.from.messagefile」;希望你能幫助我;) – user1083404

回答

0

我想你混合兩個概念:

  • 錯誤信息是如何保存在錯誤對象(errors.reject("error.zip"+"error.countryname")
  • 他們是如何印刷There is an Error at Zip-Code, There is an Error at Countryname

如果你想改變他們的原理特德,那麼你必須改變form:errors標籤,但不是你添加消息到錯誤對象的方式! (相反:如果你想更改消息本身,然後改變輸出將是錯誤的方式。)

所以從輸出刪除<br/>,取代它,你只需要指定的的delimiter屬性form:errors標籤:

<form:errors path="*" cssClass="error message" element="div" delimiter",&nbsp;"/> 

@see Spring Reference Appendix G.4 The errors tag