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 :

réaliser des contrôles sur le formulaire


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut réaliser des contrôles sur le formulaire
    Bonjour tout le monde.

    Actuellement je débute struts et je voudrais réaliser des contrôles sur des formulaires.

    Pour l'instant j'ai codé dans la servlet LogonForm la methode validate qui permet de réaliser des contrôles.

    Je vous donne la methode validate.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    	 {
    		ActionErrors errors=new ActionErrors(); 
    		if((this.getUsername().length()>0) && (this.getPassword().length()<3))
    		{
    			errors.add("Username", new ActionError("error.index.username"));
    			errors.add("Password", new ActionError("error.index.password"));
    		}
    		return errors;
    	 }
    Je sais qu'il faut que je touche au fichier struts-config mais je ne sais où appeler la methode validate.

    Je vous donne mon fichier struts-config.
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
     <data-sources/>
     
     <form-beans type="org.apache.struts.action.ActionFormBean">
     <form-bean name="Formulaire" type="servlet.Logonform"/>
     </form-beans>
     
     <global-exceptions/>
     <global-forwards/>
     
     <action-mappings type="org.apache.struts.action.ActionMapping">
        <action path="/admin/removeMapping" type="org.apache.struts.actions.RemoveMappingAction" />
        <action path="/dologin" parameter="" input="/index.jsp" scope="request" name="Formulaire" type="servlet.Logonaction">
        <forward name="succes" path="/index.jsp" redirect="false" />
        <forward name="echec" path="/login.jsp" redirect="false" />
        </action>
        </action-mappings>
     
     <controller/>
    </struts-config>
    Je vous remercie de votre aide.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    salut,
    je crois bien que la méthode validate est appelée automatiquement à la validation du formulaire et que donc tu n'as pas a rajouter de configuration dans struts-config - a confirmer -

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 30
    Points
    30
    Par défaut
    en théorie, je sais qu'ac Struts 1.2.8, si ton mapping ac ton FormBean est bien fait (du moins, il a l'air), ta méthode validate est appelée automatiquement (tout comme la fonction reset) lorsque tu réalises ton action. Pas besoin de la mappé où que ce soit. Je confirme donc ce que disait jln13 !

    Cependant, je déconseille toujours ces méthodes. Afin de minimiser les appels Client-Server et donc d'optimiser ton programme, plutot utiliser un script javascript pour réaliser ces controles directement chez le client. Mais sous Struts, j't'avoue qu'c'est pas une mince affaire !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je vous remercie mais je viens de tester mais il forward lorsque je clique sur le boutton envoyer.

    J'utilise la version struts 1.2.7

    Je vous remercie de votre aide

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 30
    Points
    30
    Par défaut
    s'il forward vers "index.jsp" c'est que l'erreur vient de ton ActionBean !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide mais l'ActionBean se situe où ?

    J'ai modifié la methode actionforward de la servlet Logonaction.

    voici les dernieres modifications.

    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
     
    public ActionForward execute (ActionMapping mapping,ActionForm form, HttpServletRequest Request, HttpServletResponse response)
    {
    	String username=((Logonform)form).getUsername();
    	String password=((Logonform)form).getPassword();
    	((Logonform)form).validate(mapping,Request);
    	if(Logon.checkUser(username, password))
    	{
     
    		Userlist userList= new Userlist();
    	 	Vector <User> users = userList.getUsers() ;
    	 	Request.setAttribute("users",users);
    		    return mapping.findForward("succes");
    	}
    	else
    	{
    			return mapping.findForward("echec");
    	}
     
    }
    Malgré ces modifications ca me forward toujours.

    Je vus remercie de votre aide

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 30
    Points
    30
    Par défaut
    là t'as plutot un pb dans ta méthode checkuser(username, password) ! tu ne passes donc jamais dans le else ?

    et pourquoi tu mets redirect="false" dans les forward de ton struts-config.xml ?

    ne te serais tu pas aussi trompé dans l'attribut input de la balise action-mapping ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je vous remercie de votre aide.

    Je viens de modifier le code de Logonaction
    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
     
     
    public ActionForward execute (ActionMapping mapping,ActionForm form, HttpServletRequest Request, HttpServletResponse response)
    {
    	String username=((Logonform)form).getUsername();
    	String password=((Logonform)form).getPassword();
    	String result=null;
    	if(((Logonform)form).validate(mapping,Request).size()>0)
    	{
    		if(Logon.checkUser(username, password))
    		{
     
    			Userlist userList= new Userlist();
    			Vector <User> users = userList.getUsers() ;
    			Request.setAttribute("users",users);
    		    result="succes";
    		}
    		else
    		{
    			result="echec";
    		}
    	}
    	return mapping.findForward(result); 
    }
    Il rentre dans le else uniquement si il saisit mal le login et le mot de passe.

    Je vous remercie de votre aide

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    Euh, alors plusieurs remarques/questions:

    vu que validate est appelée automatiquement tu n'as donc plus besoin de l'appeler explicitement. Tu peux donc enlever la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Logonform)form).validate(mapping,Request);
    (De plus tu appelle validate après la récupération de username et password dans ton cas..)

    Ensuite, tu dis qu'il forward mais vers quoi? vers index.jsp? vers login.jsp? Y-a-t-il un message d'erreur? (exception ou autre)

    Peux tu aussi mettre le code de ton fichier "LogonForm" et de ta "loginjsp" ca pourrait aider!

    Voilà, après il devrait y avoir toutes les données du pb

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide.

    Je vous envoie les fichiers index.jsp,Logonform,Logonaction et enfin le fichier struts-config.

    Voici le fichier index.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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %>
    <html:html>
    <head>
    	<title></title>
    </head>
    <body>
            <html:form focus="Formulaire" action="/dologin">
          <table border="0" width="100%">
            <tr>
              <th align="right">
                Utilisateur :
              </th>
              <td align="left">
                <html:text property="username" size="16" maxlength="16"/>
              </td>
            </tr>
            <tr>
              <th align="right">
                Mot de Passe :
              </th>
              <td align="left">
                <html:password property="password" size="16" maxlength="16"
                              redisplay="false"/>
              </td>
            </tr>
            <tr>
              <td align="right">
                <html:submit property="submit" value="Envoyer"/>
              </td>
              <td align="left">
                <html:reset property="reset" value="Annuler"/>
              </td>
            </tr>
          </table>
     
         Bienvenue <bean:write name="Formulaire" property="username"/><br/>
          <bean:write name="Formulaire" property="password"/>
          Vous êtes connecté 
          </html:form>
     
          <table border="1">
             <tr>
                <td>Nom</td>
                <td>Prénom</td>
                <td>eMail</td>
             </tr>
            <logic:present name="users">
          <logic:iterate id="user" name="users" scope="Request">
             <tr>
                <td><bean:write name="user" property="prenom"/></td>
                <td><bean:write name="user" property="nom"/></td>
                <td><bean:write name="user" property="email"/></td>
             </tr>
         </logic:iterate>
          </logic:present>
          </table>
     
     
    </body>
    </html:html>
    Voici mon fichier Logonform:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    package servlet;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.*;
    /**
     * Servlet implementation class for Servlet: Logonform
     *
     */
     public class Logonform extends ActionForm{
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	 private String username;
    	 private String password;
     
    	 public void setUsername(String newUsername)
    	 {
    		 this.username= newUsername;
    	 }
     
    	 public String getUsername()
    	 {
    		 return this.username;
    	 }
     
    	 public void setPassword(String newPassword)
    	 {
    		 this.password=newPassword;
    	 }
     
    	 public String getPassword()
    	 {
    		 return this.password;
    	 }
     
    	 public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    	 {
    		ActionErrors errors=new ActionErrors(); 
    		if((this.getUsername().length()>0) && (this.getPassword().length()<3))
    		{
    			errors.add("Username", new ActionError("error.index.username"));
    			errors.add("Password", new ActionError("error.index.password"));
    		}
     
    		return errors;
    	 }
     
    	 public void reset (ActionMapping mapping,HttpServletRequest request)
    	 {
    		 this.username=null;
    		 this.password=null;
    	 }
    }
    Voici mon BeanAction
    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
    44
    45
    46
    47
    48
    49
    50
    package servlet;
     
    import java.io.IOException;
    import java.util.Vector;
     
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import org.apache.struts.action.*;
     
    import modele.*;
    import classe.Logon;
    /**
     * Servlet implementation class for Servlet: LogonAction
     *
     */
     public class Logonaction extends Action  {
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
     
    public ActionForward execute (ActionMapping mapping,ActionForm form, HttpServletRequest Request, HttpServletResponse response)
    {
    	String username=((Logonform)form).getUsername();
    	String password=((Logonform)form).getPassword();
    	String result=null;
    	if(((Logonform)form).validate(mapping,Request).size()>0)
    	{
    		if(Logon.checkUser(username, password))
    		{
     
    			Userlist userList= new Userlist();
    			Vector <User> users = userList.getUsers() ;
    			Request.setAttribute("users",users);
    		    result="succes";
    		}
    		else
    		{
    			result="echec";
    		}
    	}
    	return mapping.findForward(result); 
    }
     
    }
    Enfin voici mon fichier struts-config
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
     <data-sources/>
     
     <form-beans type="org.apache.struts.action.ActionFormBean">
     <form-bean name="Formulaire" type="servlet.Logonform"/>
     </form-beans>
     
     <global-exceptions/>
     <global-forwards/>
     
     <action-mappings type="org.apache.struts.action.ActionMapping">
        <action path="/admin/removeMapping" type="org.apache.struts.actions.RemoveMappingAction" />
        <action path="/dologin" parameter="" input="/index.jsp" scope="request" name="Formulaire" type="servlet.Logonaction">
        <forward name="succes" path="/index.jsp" redirect="false" />
        <forward name="echec" path="/login.jsp" redirect="false" />
        </action>
        </action-mappings>
     
     <controller/>
    </struts-config>
    Je vous remercie de votre aide.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Bonjour tout le monde,

    Je travail sur un tutoriel afin de réaliser des controles de formulaire avec struts.

    Le tutoriel me dit:
    "Ajouter dans les fichiers de ressource général et français les clés des messages d'erreur : error.index.username et error.index.password. ajoutez également les valeurs errors.header et errors.footer qui encadrent tous message d'erreur à l'affichage".

    Mais je ne sais où sont ces fichiers.

    Je vous donne le lien du tutoriel (www.unis.fr/unis/data/sandbox/pj1.doc) si vous voulez consulter plus informations.
    Je suis à la rubrique "gestion des erreurs".

    Je vous remercie de votre aide

  12. #12
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    J'ai plusieures remarques à emettre à propos de la façon avec laquelle tu as procédé :
    - Dans la méthode validate de LogonForm, je te conseille de séparer les 2 tests pour pouvoir indiquer pricésément l'erreur et de tester si les chaines sont différents de null avant d'appeler la méthode length.
    Voici un exemple :
    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
     
    public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    	 {
    		ActionErrors errors=new ActionErrors(); 
    		if(username == null || username.length()==0)
    		{
    			errors.add("username", new ActionError("error.index.username.empty"));
    		}
     
    		if(password== null || password.length()==0)
    		{
    			errors.add("password", new ActionError("error.index.password.empty"));
    		}
    		else if(password.length()<3)
    		{
    			errors.add("password", new ActionError("error.index.password.tooShort"));
    		}
     
    		return errors;
    	 }
    - N'APPELES JAMAIS ActionForm.validate() ! a moins que tu sais parfaitement ce que tu fais ! C'est le boulot de Struts. Et à moins que je ne me gourre, Struts 1.2.7 appelle par défaut la méthode validate(), mais en tout cas, pour activer ou désactiver l'appel AUTOMATIQUE de validate, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action path="..." type="..." ... validate="true|false">
      ...
    </action>
    - Pour défénir un fichier de ressources, tu crées un simple fichier texte d'extension ".properties", disons gentil.properties, et tu y mets des couples exemple:

    gentil.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    error.index.password.empty=Password field must be filled !
    error.index.username.empty=Loginfield must be filled !
    les clés correspondent aux paramètres passés au constructeur d'ActionMessage
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    errors.add("password", new ActionError("error.index.password.tooShort"));
    Ensuite, tu indiques à Struts d'utiliser ce fichier en ajoutant la ligne suivante dans struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <message-resources null="false" parameter="gentil"/>
    parameter=nom du fichier de ressources sans extension !
    Enfin, si t'en as le temps (et la volonté), tu ajoutes d'autres ressouces locales. Disons par exemple que tu veux ajouter une version française :
    tu crèes un autre fichier .properties gentil_fr.properties (remarques le format : [gentil]_[langue].properties) avec les mêmes clés mais avec les valeurs en français :
    gentil_fr.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    error.index.password.empty=Le champ mot de passe doit être rempli !
    error.index.username.empty=Le champ nom d'utilisateur doit être rempli !
    - Et enfin, ajoutes la balise magique <html:errors/> dans le body d'index.jsp pour que si validate retournes des erreurs, ces erreurs soient affichées !

    Oof ! enfin !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide mais certainement j'ai du faire une mauvaise manipulations.

    Lorsque je compile voici ce que j'ai :

    Utilisateur : ???fr.index.username.empty???
    Mot de Passe : ???fr.index.password.empty??? ???fr.index.password.toShort???

    Bienvenue
    Vous êtes connecté
    Nom Prénom eMail

    voici mon fichier controle.proprieties:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    error.index.password.empty=Password field must be filled !
    error.index.password.toShort=too short!
    error.index.username=Loginfield must be filled !
    Voici mon fichier index.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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %>
    <html:html>
    <head>
    	<title></title>
    </head>
    <body>
            <html:form focus="Formulaire" action="/dologin">
          <table border="0" width="100%">
            <tr>
              <th align="right">
                Utilisateur :
     
              </th>
              <bean:message key="index.username.empty"/>
              <td align="left">
                <html:text property="username" size="16" maxlength="16"/>
              </td>
            </tr>
            <tr>
              <th align="right">
                Mot de Passe :
                <bean:message key="index.password.empty"/>
                <bean:message key="index.password.toShort"/>
              </th>
              <td align="left">
                <html:password property="password" size="16" maxlength="16"
                              redisplay="false"/>
              </td>
            </tr>
            <tr>
              <td align="right">
                <html:submit property="submit" value="Envoyer"/>
              </td>
              <td align="left">
                <html:reset property="reset" value="Annuler"/>
              </td>
            </tr>
          </table>
     
         Bienvenue <bean:write name="Formulaire" property="username"/><br/>
          <bean:write name="Formulaire" property="password"/>
          Vous êtes connecté 
          </html:form>
     
          <table border="1">
             <tr>
                <td>Nom</td>
                <td>Prénom</td>
                <td>eMail</td>
             </tr>
            <logic:present name="users">
          <logic:iterate id="user" name="users" scope="Request">
             <tr>
                <td><bean:write name="user" property="prenom"/></td>
                <td><bean:write name="user" property="nom"/></td>
                <td><bean:write name="user" property="email"/></td>
             </tr>
         </logic:iterate>
          </logic:present>
          </table>
     
     
    </body>
    </html:html>
    Voici mon bean form
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    package servlet;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.*;
    /**
     * Servlet implementation class for Servlet: Logonform
     *
     */
     public class Logonform extends ActionForm{
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	 private String username;
    	 private String password;
     
    	 public void setUsername(String newUsername)
    	 {
    		 this.username= newUsername;
    	 }
     
    	 public String getUsername()
    	 {
    		 return this.username;
    	 }
     
    	 public void setPassword(String newPassword)
    	 {
    		 this.password=newPassword;
    	 }
     
    	 public String getPassword()
    	 {
    		 return this.password;
    	 }
     
    	 public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    	 {
    		ActionErrors errors=new ActionErrors(); 
    		if((this.getUsername()==null) || (this.getUsername().length()==0))
    		{
    			errors.add("username", new ActionError("error.index.username.empty"));
    		}
    		if((this.getPassword()==null) || this.getPassword().length()==0)
    		{
    			errors.add("password",new ActionError("error.index.password.empty"));
    		}
    		else if(this.getPassword().length()<3)
    		{
    			errors.add("password", new ActionError("error.index.password.tooShort"));
    		}
    		return errors;
    	 }
     
    	 public void reset (ActionMapping mapping,HttpServletRequest request)
    	 {
    		 this.username=null;
    		 this.password=null;
    	 }
    }
    et enfin voici mon fichier struts-config

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
     <data-sources/>
     
     <form-beans type="org.apache.struts.action.ActionFormBean">
     <form-bean name="Formulaire" type="servlet.Logonform"/>
     </form-beans>
     
     <global-exceptions/>
     <global-forwards/>
     
     <action-mappings type="org.apache.struts.action.ActionMapping">
     
        <action path="/admin/removeMapping" type="org.apache.struts.actions.RemoveMappingAction" />
        <action path="/dologin" parameter="" input="/index.jsp" scope="request" name="Formulaire" type="servlet.Logonaction">
        <forward name="succes" path="/index.jsp" redirect="false" />
        <forward name="echec" path="/login.jsp" redirect="false" />
        </action>
        </action-mappings>
     
     <controller/>
     <message-resources null="false" parameter="controle"/>
    </struts-config>
    Je vous remercie de votre aide

  14. #14
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    A priorie t'as commis 2 gaffes :
    - extension du fichier controle : properties et non proprietes (Struts vient des USA tout de même )
    - dans controle.properties, t'as mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error.index.password.toShort=too short!
    mais t'aurais du mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error.index.password.tooShort=too short!
    un o manque dans ton toShort !

  15. #15
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Autre chose, dans index.jsp, peux tu m'expliquer ce que tu veux faire avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="index.username.empty"/>
    et les autres <bean:message> ?
    pour info, <bean:message key="..."/> affiche un message depuis le fichier de ressources, donc dans ton cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="index.username.empty"/>
    t'affiche le message d'erreur Login field must be filled ! tout le temps ! je ne pense pas que c'est ce que tu veux, toi tu veux plutôt n'afficher ces messages que si une erreur s'est produite, alors au risque de me répéter, insère la balise <html:errors/> dans le body et juste avant <html:form> !

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie encore de ton aide lorsque je clique sur le boutton et lorsque je saisis pas d'information, il ne soumet pas le formulaire.

    Mais j' ai toujours dans ma page ceci après avoir déployé le serveur:
    Utilisateur : ???fr.index.username.empty???
    Mot de Passe : ???fr.index.password.empty??? ???fr.index.password.tooShort???

    Bienvenue



    Il m' affiche les bean message par exemple quand j'écris ceci:
    <bean:message key="index.username.empty"/> à l'écran j'ai ceci qui s'affiche:

    ???fr.index.username.empty???

    Je vous remercie de votre aide.

  17. #17
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Essais ceci : fais une copie de controle.properties et renomme la controle_fr.properties

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie, je viens d'effectuer la manipulation mais j'ai le même problème.

    J'ai placer le fichier properties dans le repertoire webcontent est ce que c'est ici qu'il faut le placer, c'est peut là d'où viens l'erreur?

    Je te remercie de ton aide.

  19. #19
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    mets le plutôt dans WebContent\WEB-INF\classes

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie mais est-tu sur que le repertoire "WebContent\WEB-INF\classes" existe car je ne le trouve.

    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] C# Comment accéder aux propriétés des contrôle sur un autre formulaire
    Par Claude_Azoulai dans le forum Visual Studio
    Réponses: 0
    Dernier message: 03/04/2013, 17h04
  2. [AC-2010] Créer des contrôles sur un formulaire existant
    Par gilweb dans le forum IHM
    Réponses: 4
    Dernier message: 11/10/2012, 19h57
  3. [C#]Placement des elements sur un formulaire
    Par hawk² dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/08/2006, 15h50
  4. Réponses: 1
    Dernier message: 15/09/2005, 11h59
  5. pb avec des clés sur un formulaire
    Par marie253 dans le forum Bases de données
    Réponses: 7
    Dernier message: 17/06/2004, 13h53

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