IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Probleme de non detection des erreurs dans un formulaire (methode validate)


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Probleme de non detection des erreurs dans un formulaire (methode validate)
    Bonjour,

    je debute dans struts et compagnie.

    J'ai un soucis : lorsque je valide mon formulaire, je ne suis pas redirigé vers la page d'erreur "erreur.struts.jsp" alors que j'ai une erreur dans mon formulaire qui devrait m'etre indiquée : mon champ "emplacement" est vide.

    Je teste dans "FormulaireBean" si le champ emplacement est vide je crée une erreur qui se référence au fichier "strutsressources.properties" et qui devrait me redirigé vers la page "erreur.struts.jsp" et m'indiquer l'erreur correspondante.

    Voici le code de mon fichier "struts-config.xml" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
     
    <struts-config>
       <form-beans>
          <form-bean 
             name="frmStruts" 
             type="istia.st.struts.struts.FormulaireBean"
          />
       </form-beans>
     
       <action-mappings>
          <action
             path="/main"
             name="frmStruts"
             scope="session"
             validate="true"
             input="/erreurs.do"
             parameter="/vues/main.html"
             type="org.apache.struts.actions.ForwardAction"
          />
          <action
             path="/erreurs"
             parameter="/vues/erreurs.struts.jsp"
             type="org.apache.struts.actions.ForwardAction"
          />
          <action
             path="/reponse"
             parameter="/vues/reponse.struts.jsp"
             type="org.apache.struts.actions.ForwardAction"
          />
          <action
             path="/formulaire"
             parameter="/vues/formulaire.struts.jsp"
             type="org.apache.struts.actions.ForwardAction"
          />
       </action-mappings>
       <message-resources parameter="ressources.strutsressources"/>
    </struts-config>
    Voici le code de mon fichier "FormulaireBean.java" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    package istia.st.struts.struts;
     
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
     
    @SuppressWarnings("serial")
    public class FormulaireBean extends ActionForm {
    	// emplacement
    	private String emplacement = null;
     
    	public String getEmplacement() {
    		return emplacement;
    	}
     
    	public void setEmplacement(String emplacement) {
    		this.emplacement = emplacement;
    	}
     
    //	 validation
    	@SuppressWarnings("deprecation")
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    	//	 gestion des erreurs
    		ActionErrors erreurs = new ActionErrors();
    	//	 l'emplacement doit être non vide
    		if (emplacement == null || emplacement.trim().equals("") || emplacement.trim().equals("test")) {
    			erreurs.add("emplacementvide", new ActionError("struts.formulaire.emplacement.vide"));
    		}
    	//	 on rend la liste d'erreurs
    		return erreurs;
    	}
     
    }
    Voici le code de mon fichier "strutsressources.properties" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    struts.formulaire.emplacement.vide=<li>Vous devez indiquer un emplacement</li>
    errors.header=<ul>
    errors.footer=</ul>
    Enfin voila le fichier "formulaire.struts.jsp" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
     
    <html>
    <meta http-equiv="pragma" content="no-cache">
    	<head>
    		<title>Struts - formulaire</title>
    		<script language="javascript">
    			function effacer(){
    				with(document.frmStruts){
    					emplacement.value="";
    				}
    			}
    		</script>
    	</head>
    	<body>
    		<center>
    		<h2>Struts - formulaire</h2>
    		<hr>
    			<html:form action="/main">
    				<table>
    					<tr>
    						<td>Emplacement d'origine</td>
    						<td><html:text property="emplacement" size="20" /></td>
    					</tr>
    				</table>
    				<table>
    					<tr>
    						<td><html:submit value="Envoyer"/></td>
    						<td><html:reset value="R&eacute;tablir"/></td>
    						<td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
    					</tr>
    				</table>
    			</html:form>
    		</center>
    	</body>
    </html>

    Je ne suis jamais redirigé vers la page erreur et je ne sais pas d'ou cela peut venir.

    Peut etre que mon fichier .properties est mal placé ( je l'ai mis dans WEB-INF\classes\ressources).
    Peut etre que ma fonction validate est mal écrite : eclipse me dit que la méthode add(String, ActionError) du type ActionErrors est si je ne met pas le "@SuppressWarnings("deprecation")".
    En tout cas je ne pense pas qu'il passe par cette fonction validate car j'ai enlevé le test sur l'attribut "emplacement" et créé l'erreur a chaque fois qu'il appel cette fonction, je ne suis jamais redirigé vers la page erreur.

    Peut etre que mon fichier config est mal écrit. Pourtant le validate est à "true".


    Merci de me dire ce qui ne va pas et de me faire part de vos remarques sur mon code.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    ActionError est deprecated. Il faut utiliser ActionMessage.

    Il faut donc coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    {
       ActionErrors erreurs = new ActionErrors();
       if ( emplacement == null || emplacement.length() == 0 )
       {
          erreurs.add("emplacementvide", new ActionMessage("struts.formulaire.emplacement.vide"));
       }
       return erreurs ;
    }
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Oui merci
    Merci j'avais deja corrigé cette erreur.

    En effet je suis actuellement le tutorial "struts.pdf" de tahe et je n'avais pas vu l'errata.

    Meme en faisant ttes les corrections je ne suis toujours ps redirigé vers ma page d'erreur.


    Merci pour ta réponse quand meme !

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/05/2013, 10h04
  2. Réponses: 1
    Dernier message: 10/04/2012, 16h57
  3. [ZF 1.10] Mise en page des erreurs dans un formulaire
    Par mysth dans le forum Zend_Form
    Réponses: 0
    Dernier message: 08/06/2010, 17h41
  4. Réponses: 8
    Dernier message: 22/11/2009, 00h10
  5. Non affichage des données dans le formulaire
    Par enkie dans le forum IHM
    Réponses: 11
    Dernier message: 11/07/2008, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo