J'utilise la bibliothèque Spring Form pour gérer une page de recherche dans mon application. Voici un snipped de mon DD montrant la configuration de haricot:Printemps Forms - Comment rechercher une erreur sur un chemin spécifique
<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>
La classe validateur est assez 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.");
}
}
}
Dans mon JSP, ma forme est affichée dans un tableau HTML. Je souhaite que les erreurs spécifiques au champ soient affichées sous le champ correspondant sous la forme d'une ligne de tableau séparée. Voici un extrait:
<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 question que j'ai est - comment puis-je faire la sortie de la ligne d'erreur à l'existence de l'erreur? L'instance de Validator est-elle accessible depuis ma JSP? Quel serait le test pour un c: if tag?
Merci,
-aj
Salut, Merci pour votre commentaire, mais je ne vois pas où dans le lien que vous avez fourni qu'ils utilisent la bibliothèque Spring Form. Si vous avez des informations spécifiques au formulaire de printemps, veuillez poster une autre réponse. Merci! –