2010-06-15 71 views
2

我有一個Spring 2.5應用程序,我有幾種形式,我執行各種驗證。我沒有問題做這個驗證,並在頁面上顯示適當的表單輸入旁邊的錯誤。我想知道是否可以將該錯誤消息放在表單值中,以便它顯示在輸入字段中,而不僅僅顯示在<form:errors path="*" cssClass="error" >標記中。我嘗試設置validator類中的值,並在設置窗體會話屬性時將其設置在日誌中,但該值不顯示在字段中的頁面上。春天 - 填寫表單字段與錯誤消息

例如,我有限定與控制一個頁面,如:

<form:input path="username" cssClass="textinput" cssErrorClass="textinput-error" /> 

在驗證器,我試圖用戶名值設置爲對象:

ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "error.field-required"); 
// This value doesn't show on the page 
user.setUsername("You must supply a user name"); 

是否有可能根據錯誤設置值並將其填充到頁面上?

回答

1

執行如下操作

裏面的validate方法

import static org.springframework.validation.BindingResult.MODEL_KEY_PREFIX; 

public void validate(Object command, Errors errors) { 
    /** 
     * keep in mind I SUPPOSE your model Attribute is called command - override if needed 
     */ 
    User user = (User) ((BindingResult) errors).getModel().get(MODEL_KEY_PREFIX + "command"); 

    user.setUserName("You must supply a user name"); 

    /** 
     * Now just do it 
     */ 
    ((BindingResult) errors).getModel().put(MODEL_KEY_PREFIX + "command", user); 
} 

它將fullfil您的需求

警告:由於信息的錯誤是一個簡單的字符串,你不能設置一些屬性,其班級不是純字符串