intégrer messages d'erreur Validator
J'ai intégré Validator dans mon application, et voici la configuration :
1- struts-config :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
<!-- Properties...-->
<message-resources parameter="resources/application"/>
<!-- Formulaires...-->
<form-beans>
<form-bean name="formContact" type="src.main.formulaires.ContactForm"/>
</form-beans> |
2- validation.xml :
Code:
1 2 3 4 5 6 7 8 9 10
| <formset>
<!-- Validation pour le formulaire ContactForm -->
<form name="formContact">
<field
property="nom"
depends="required">
<arg key="formContact.nom"/>
</field>
</form>
</formset> |
3- ContactForm
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
| public class ContactForm extends ValidatorForm{
/** Serial Version UID */
private static final long serialVersionUID = 1L;
/** Champ du formulaire : nom */
private String nom;
// Constructeur par défaut de ContactForm()...
public ContactForm(){}
// getter et setter du name
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
// ici on récupère tous les messages d'erreurs gérés par le Validator
ActionErrors errors = super.validate(mapping, request);
if (nom == null || nom.length()==0){
errors.add("error.nom.empty",new ActionMessage ("error.nom"));
}
return errors;
}
} |
4- et la JSP : contacts.jsp :
Code:
1 2 3 4 5 6 7
|
<td colspan="2">
<html:text property="nom" styleClass="champ" value=""></html:text>
<FONT face="Arial, Helvetica, sans-serif" size=2 color=red>
<html:errors property="error.nom.empty"/>
</FONT>
</td> |
5- Properties : application.properties
Code:
1 2 3
| formContact.nom=Nom
errors.nom=<font color="blue">Le champ [{0}] doit être renseigné.</font>
errors.required= <font color="blue">Le champ [{0}] doit être renseigné.</font> |
Ce que je veux, c'est afficher un message d'erreur en rouge à coté de mon champ, j'ai pris simple pour commencer, mais je suis perdu je n'arrive pas à comprendre pourquoi ça ne marche pas...
Est ce que j'ai oublié qque chose ??
Merci d'avance de votre aide...