[Struts]Affichage de messages d'erreur avec html:errors
Affichage de messages d'erreur avec html:errors [Struts] - Java - Programmation
MarshPosté le 12-04-2007 à 10:32:01
Bonjour à tous,
Je suis sur un projet de jeu accessible depuis le WAP (donc WML). J'utilise le framework Struts pour le développer.
Voilà mon problème: je souhaite afficher des messages d'erreurs dans le cas où des informations sont incorrectes lors de la validation d'un formulaire. J'ai suivi pas mal de tutoriels mais rien n'y fait, ils ne veulent pas s'afficher.
Le formulaire se situe dans la jsp connexionJeu, si la rentrée des informations est correcte, je me dirige vers jeu.do sinon, je reste sur connexionJeu.jsp où je suis censé afficher les messages d'erreurs.
Le formulaire est validé par ValiderConnexionActionForm, la redirection (forward) est assurée par ValiderConnexionAction. Les deux genèrent des messages d'erreurs (le validate de l'ActionForm renvoyant un ActionErrors et l'Action utilisant un saveErrors). Je vous épargne le gros du code de ces deux classes mais voici les parties les plus importantes:
String type = validerConnexionAdminActionForm.getType();
// ...
} else {
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage(
"validerConnexion.errors.login.invalid" );
errors.add("connexionLoginWrong", error);
if (type.equals("joueur" )) {
Statistique.log("Login", "JOUEUR_PASOK",
"Tentative de connection de login [" + login + "]." );
saveErrors(request, errors);
return mapping.findForward(UNSUCCESSJOUEUR);
// ...
}
}
Code :
publicclass ValiderConnexionActionForm extends
org.apache.struts.action.ActionForm {
/**
* login saisi.
*/
private String login;
/**
* mot de passe saisi.
*/
private String password;
/**
* si c'est une demande de connexion d'un joueur ou d'un administrateur.
*/
private String type;
/**
* @return login
*/
public String getLogin() {
return login;
}
/**
* @param string
* login
*/
publicvoid setLogin(String string) {
login = string;
}
/**
* @return mot de passe
*/
public String getPassword() {
return password;
}
/**
* @param string
* mot de passe
*/
publicvoid setPassword(String string) {
password = string;
}
/**
*
*/
public ValiderConnexionActionForm() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param mapping
* mapping d'entrée
* @param request
* requete d'entrée
* @return les erreurs
*/)
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (getLogin() == null || getLogin().length() < 1) {
errors.add("connexionNameEmpty", new ActionMessage(
"validerConnexion.error.name.required" ));
}
if (getPassword() == null || getPassword().length() < 1) {
errors.add("connexionPasswordEmpty", new ActionMessage(
"validerConnexion.error.password.required" ));
}
return errors;
}
/**
* @return Retourne le champs type.
*/
public String getType() {
return type;
}
/**
* @param type La valeur a mettre dans l'attribut type.
*/
publicvoid setType(String type) {
this.type = type;
}
}
Dans les ActionMessage, j'assigne un nom de propriété (connexionNameEmpty e.g.) ainsi qu'un taglib définit dans le fichier de ressources pour chaque type d'erreur.
J'utilise ici des html:errors sur chacune des propriétés, j'ai aussi essayé la balise <html:errors /> seule et <html:errors property="org.apache.struts.action.ERROR" /> (vu dans un des topics de ce forum), chacune de ces solutions a été testée dans et en dehors du formulaire.
Et donc je suis bloqué ici, dans l'incapacité de les afficher. Si vous voyez d'où le problème provient, ça me serait d'une très grande aide, merci d'avance
Marsh Posté le 12-04-2007 à 10:32:01
Bonjour à tous,
Je suis sur un projet de jeu accessible depuis le WAP (donc WML).
J'utilise le framework Struts pour le développer.
Voilà mon problème: je souhaite afficher des messages d'erreurs dans le cas où des informations sont incorrectes lors de la validation d'un formulaire.
J'ai suivi pas mal de tutoriels mais rien n'y fait, ils ne veulent pas s'afficher.
Commençons donc par le début et struts-config.xml
Le formulaire se situe dans la jsp connexionJeu, si la rentrée des informations est correcte, je me dirige vers jeu.do sinon, je reste sur connexionJeu.jsp où je suis censé afficher les messages d'erreurs.
Le formulaire est validé par ValiderConnexionActionForm, la redirection (forward) est assurée par ValiderConnexionAction. Les deux genèrent des messages d'erreurs (le validate de l'ActionForm renvoyant un ActionErrors et l'Action utilisant un saveErrors).
Je vous épargne le gros du code de ces deux classes mais voici les parties les plus importantes:
Dans les ActionMessage, j'assigne un nom de propriété (connexionNameEmpty e.g.) ainsi qu'un taglib définit dans le fichier de ressources pour chaque type d'erreur.
Pour terminer: un extrait de la JSP
J'utilise ici des html:errors sur chacune des propriétés, j'ai aussi essayé la balise <html:errors /> seule et <html:errors property="org.apache.struts.action.ERROR" /> (vu dans un des topics de ce forum), chacune de ces solutions a été testée dans et en dehors du formulaire.
Et donc je suis bloqué ici, dans l'incapacité de les afficher.
Si vous voyez d'où le problème provient, ça me serait d'une très grande aide, merci d'avance