Estoy usando la biblioteca Spring Form para manejar una página de búsqueda en mi aplicación. Aquí está un cortado con tijeras de mi DD muestra la configuración de frijol:Formularios de resorte: cómo buscar errores en la ruta específica
<bean name="/search.html" class="myapp.web.AccountSearchController">
<property name="sessionForm" value="true"/>
<property name="commandName" value="searchAccounts"/>
<property name="commandClass" value="myapp.service.AccountSearch"/>
<property name="validator">
<bean class="myapp.service.AccountSearchValidator"/>
</property>
<property name="formView" value="accountSearch"/>
<property name="successView" value="accountSearch"/>
</bean>
clase El validador es bastante simple:
package myapp.service;
import org.springframework.validation.Validator;
import org.springframework.validation.Errors;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class AccountSearchValidator implements Validator {
/** Logger for this class and subclasses */
protected final Log logger = LogFactory.getLog(getClass());
public boolean supports(Class clazz) {
return AccountSearch.class.equals(clazz);
}
public void validate(Object obj, Errors errors) {
AccountSearch accountSearch = (AccountSearch) obj;
if (accountSearch == null) {
errors.rejectValue("domainName", "error.accountSearch.neither-specified", null, "Value required.");
} else if (accountSearch.getAccountId().isEmpty() &&
accountSearch.getDomainName().isEmpty()) {
errors.rejectValue("domainName", "error.accountSearch.neither-specified", null, "Value required.");
}
}
}
En mi JSP, mi formulario se muestra en una tabla HTML. Deseo que los errores específicos de campo se muestren debajo del campo respectivo como una fila de tabla separada. He aquí un fragmento:
<tr>
<td align="right" valign="top"><form:label path="domainName">Domain Name</form:label>:</td>
<td><form:input path="domainName" size="30"/></td>
</tr>
<tr>
<td> </td>
<td><form:errors path="domainName" cssClass="error"/></td>
</tr>
La pregunta que tengo es - ¿cómo puedo hacer que la salida de la hilera de error a la existencia del error? ¿Es accesible la instancia de Validator desde mi JSP? ¿Cuál sería la prueba para una etiqueta c: if?
Gracias,
-aj
Hola, Gracias por su comentario pero no veo en el enlace que proporcionó que están utilizando la biblioteca de Spring Form. Si tiene información específica sobre Spring Form, publique otra respuesta. ¡Gracias! –