2010-07-27 22 views
6

¿Cómo se muestran los errores de validación NEXT en cada entrada/componente?Mostrar errores de enlace al lado de cada entrada

Validador:

@Override 
public void validate(final Object obj, final Errors e) 
{ 
    ValidationUtils.rejectIfEmpty(e, "firstname", "error.firstname.empty"); 
} 

JSP:

<form:label path="firstname"> 
    <spring:message code="label.firstname" /> 
</form:label> 
<form:input path="firstname" /> 
<form:errors path="firstname" /> <!-- THIS DOES NOT WORK! --> 

puedo mostrar todos los errores utilizando el siguiente código de la vista:

<spring:hasBindErrors name="contact"> 
    <ul> 
     <c:forEach var="error" items="${errors.allErrors}"> 
     <spring:message code="${error.code}"></spring:message> 
     </c:forEach> 
    </ul> 
</spring:hasBindErrors> 

¿Alguna idea?

Respuesta

1

Lo que tienes con <form:errors path="firstname" /> me funciona cuando lo hago.

Asegúrese de que en su JSP usted tiene la configuración <form:form/> etiqueta correctamente:

<form:form name="someName" commandName="commandClassName">

También asegúrese de que el campo <form:errors> está dentro de una etiqueta <form:form> y que sus variables de instancia para su clase de comando tienen la correcta capitalización en el JSP y getters/setters.

1

No utilizar hacia adelante o redirigir. Debe enviar la respuesta a la vista.

p. Ej.

if(result.hasErrors()) 
{ 
    return "/contact"; 
} 
6

Espero que ya lo hayas descifrado.

Usted podría hacer lo siguiente para mostrar todos los errores:

<spring:bind path="contactUs.*"> 
    <c:if test="${status.errors.errorCount > 0}"> 
    <ul> 
    <c:forEach var="error" items="${status.errors.allErrors}"> 
    <li><spring:message message="${error}"></spring:message></li> 
    </c:forEach> 
    </ul> 
    </c:if> 
</spring:bind> 

Si lo que necesita es mostrar cada entrada de formulario y de error de la unión junto a la otra tendrá que hacer:

<spring:bind path="contactUs.eamil"> 
    <input value="${status.value}" name="${status.expression}"> 
     <c:if test="${status.error}"> 
      Error codes: 
      <c:forEach items="${status.errorMessages}" var="error"> 
       <c:out value="${error}"/> 
      </c:forEach> 
     </c:if> 
</spring:bind> 
Cuestiones relacionadas