methode 'validate' de l'actionForm
Salut, je souhaiterai avoir quelques renseignements sur l'emploi de la méthode 'validate' de l'actionForm. Actuellement, j'ai essayé de l'utiliser dans un formulaire sur plusieurs pages et ca ne fonctionne pas.
Mon struts-config ressemble a ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <struts-config>
<form-beans>
<form-bean name="loginForm" type="technote.actionform.LoginForm" />
</form-beans>
<action-mappings>
<action path="/Input"
input="/pages/loginForm.jsp"
name="loginForm"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/adresseForm.jsp"
scope="request"
validate="true" />
<action path="/InputAdresse"
input="/pages/adresseForm.jsp"
name="loginForm"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/affiche.jsp"
scope="request" />
</action-mappings>
<message-resources parameter="MessageResources"/>
<message-resources parameter="mesMessages" key="myResources" null="false" />
</struts-config> |
Le actionForm :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| public class LoginForm extends ActionForm {
private Login personne = new Login();
private int page = 0;
public Login getPersonne() {
return personne;
}
public void setPersonne(Login login) {
this.personne= login;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public ActionErrors validate (ActionMapping mapping, HttpServletRequest request) {
ActionErrors erreurs = new ActionErrors();
if (page == 1) {
if ( personne.getIdentifiant() == null || personne.getIdentifiant().equals("".trim())) {
erreurs.add("login", new ActionMessage("errors.login"));
}
if ( personne.getMdp() == null || personne.getMdp().equals("".trim())) {
erreurs.add("mdp", new ActionMessage("errors.mdp"));
}
}
if (page == 2) {
if (personne.getAdresse().getNumRue() == null || personne.getAdresse().getNumRue().equals("".trim())) {
erreurs.add("numRue", new ActionMessage("errors.numRue"));
}
if (personne.getAdresse().getRue() == null || personne.getAdresse().getRue().equals("".trim())) {
erreurs.add("rue", new ActionMessage("errors.rue"));
}
if (personne.getAdresse().getCodePostal() == null || personne.getAdresse().getCodePostal().equals("".trim())) {
erreurs.add("codePostal", new ActionMessage("errors.cp"));
}
if (personne.getAdresse().getVille() == null || personne.getAdresse().getVille().equals("".trim())) {
erreurs.add("ville", new ActionMessage("errors.ville"));
}
}
return erreurs;
}
} |
le message resource rajouté contient:
Code:
1 2 3 4 5 6 7 8
| # Errors
errors.login=Le champ identifiant doit être renseigné.
errors.mdp=Le champ mot de passe doit être renseigné.
errors.numRue=Le champ numéro de rue doit être renseigné.
errors.rue=Le nom de la rue doit être renseigné.
errors.cp=Le code postal doit être renseigné.
errors.ville=Le nom de la ville doit être renseigné. |
et la page du formulaire appelée est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>
<html:html>
<head>
<title>Page login</title>
</head>
<body>
<html:errors />
<html:form action="/Input" method="post">
<nested:nest property="personne">
<bean:message bundle="myResources" key="login" />
<nested:text property="identifiant" />
<html:errors property="login" />
<br>
<bean:message key="mdp" bundle="myResources" />
<nested:text property="mdp" />
<html:errors property="mdp" />
<br>
<nested:hidden property="page" value="1" />
<html:submit value="Soumettre"/>
</nested:nest>
</html:form>
</body>
</html:html> |
Je n'ai pas d'erreurs, mais lorsque que j'appuie sur le bouton pour passer a la page suivante, la validation n'est pas prise en compte. Les champs non renseignés ne créent pas d'erreur, et il n'y a pas de retour sur la page qui vient d'etre envoyée.
et là, je vois vraiement pas d'où ca vient .