Hello,
I am using the Spring Validator, but I have a hard time showing the ${status.errorMessage}, which remains empty for "stServerVo.address" although
spring:hasBindErrors for "stServerVo" is true. Am I missing something?
Thanks in advance for your help.
------------------- JSP
<spring:bind path="stServerVo.address">
<td>address:</td>
<td>
<input type="text" name="<c:out value="${status.expression}"/>" value="<c:out value="${status.value}"/>"/>
</td>
<td>
<!-- NOT DISPLAYED -->
<font color="red"><c:out value="${status.errorMessage}"/></font>
<!-- DISPLAYED -->
<spring:hasBindErrors name="stServerVo">
<div class="error">Please provide valid search criteria!</div>
</spring:hasBindErrors>
</td>
------------------- VALIDATOR
public class LoginValidator implements Validator {
public boolean supports(Class clazz) {
return StServerVo.class.equals(clazz);
}
public void validate(Object obj, Errors errors) {
StServerVo stServerVo = (StServerVo)obj;
if (stServerVo.getAddress() == null || stServerVo.getAddress().length() == 0){
errors.reject("address", null,"Please provide an address.");
}
if (stServerVo.getUserName() == null || stServerVo.getUserName().length() == 0){
errors.reject("userName", null,"Please provide a user name.");
}
}
}
------------------- FLOW
<view-state id="displayLogin" view="loginView">
<transition on="login" to="bindAndValidateLogin">
</transition>
</view-state>
<action-state id="bindAndValidateLogin">
<action bean="formAction" method="bindAndValidate"/>
<transition on="success" to="loginAction"/>
<transition on="error" to="displayLogin"/>
</action-state>
------------------- BEANS
<bean name="formAction" class="org.springframework.webflow.action.FormActi on">
<property name="formObjectName"><value>stServerVo</value></property>
<property name="formObjectClass"><value>web.StServerVo</value></property>
<property name="validator">
<bean class="web.flow.LoginValidator"/>
</property>
</bean>


Reply With Quote
