2010-06-15 68 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您的需求

警告:由于信息的错误是一个简单的字符串,你不能设置一些属性,其班级不是纯字符串