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 :

Débutant qui galère avec un formulaire


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut Débutant qui galère avec un formulaire
    Bonjour à tous,

    Je suis débutant sur les techno struts.
    Je souhaite faire une première page d'appli pour authentifier un user.
    => Demande de login et password.
    Pour le début je ne fait pas de validate... je veux juste récupérer les infos dans mon Bean.
    La page d'accueil est index.jsp avec comme formulaire :
    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
     
    <html:form action="/accueil" name="frmAuthentification" type="fr.ndo.struts.forms.AuthentificationBean">
    <table width="100%" height="100%" border=0>
    <tr height="1%">
        <td align="center">
            <table>
            <tr>
                <td>
                    <table>
                    <tr>
                        <td align="center">Informations de connexion</td>
                    </tr>
                    <tr>
                        <td>
                            <table>
                            <col width=50%>
                            <col width=50%>
                            <tr>
                                <td>Identifiant :</td>
                                <td>
                                    <html:text property="login" value="Saisir le login"/>
                                </td>
                            </tr>
                            <tr>
                                <td>Mot de passe :</td>
                                <td>
                                    <html:password property="password" value=""/>
                                </td>
                            </tr>
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td align="center">
                            <html:checkbox property="changePasswd" value="0"/>Changer de mot de passe
                        </td>
                    </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td align="center">
                    <table cellspacing=10>
                    <col width=50% align="right">
                    <col width=50% align="left">
                    <tr>
                        <td>
                            <html:submit value="Valider"/>
                        </td>
                        <td>
                            <html:reset value="Annuler"/>
                        </td>
                    </tr>
                    </table>
                </td>
            </tr>
           </table>
        </td>
    </tr>
    </table>
    </html:form>
    Je souhaite daonc l'associer au bean "frmAuthentification"
    Dans AuthentificationBean.java, je définis la classe de ce bean :
    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
     
    package fr.ndo.struts.forms;
     
    import org.apache.struts.action.ActionForm;
     
    public class AuthentificationBean extends ActionForm {
    	//Login
    	private String login = null;
    	public String getLogin() {
    		return login;
    	}
    	public void setLogin(String login) {
    		this.login = login;
    	}
     
    	//Password
    	private String password = null;
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
     
    	//ChangePasswd
    	private boolean changePasswd = false;
    	public boolean getChangePasswd() {
    		return changePasswd;
    	}
    	public void setChangePasswd(boolean changePasswd) {
    		this.changePasswd = changePasswd;
    	}
    }
    Dans 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
     
    <form-beans>
    	<form-bean
    		name="frmAuthentification"
    		type="fr.ndo.struts.forms.AuthentificationBean"
    	/>
    </form-beans>
     
    ...
    <action-mappings>
    	<!--  INDEX / LOGIN -->
    	<action 
    		path="/index"
    		parameter="/index.jsp"
    		type="org.apache.struts.actions.ForwardAction">
    	</action>
    	<!--  ACCUEIL -->
    	<action 
    		path="/accueil"
    		parameter="/jsp/accueil.jsp"
    		type="org.apache.struts.actions.ForwardAction">
    	</action>
    </action-mappings>
    Mais quand je lance le server (Tomcat) et passe mon URL http://localhost:8080/ndo/index.do, j'ai le message erreur suivant :
    org.apache.jasper.JasperException: /index.jsp(51,2) Impossible de trouver une méthode de mise à jour pour l'attribut: name

    Je précise que je n'ai pas d'erreur de compilation et je pense avoir tout déclaré.

    Est ce qqn a une petite idée qui pourrait me débloqué svp?
    D'avance merci

    BK

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    je crois qu'il faut mettre acueil.do dans l'action du formulaire.

    Sinon tu peux directement créer une action struts et l'associer au formulaire sans passer par le bean truc.

    Oodama Rasengan

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Il faut que tu déclare le bean qui doit être rempli à la soumission du formulaire de log.
    Pour ca il te suffit de déclarer cela :
    dans 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
    <action-mappings>
    	<!--  INDEX / LOGIN -->
    	<action 
    		path="/index"
    		parameter="/index.jsp"
    		type="action.IndexAction"
                    name="frmAuthentification">
    <forward name="echec" path="/index.jsp"/>
    <forward name="success" path="/accueil.jsp"/>
    	</action>
    	<!--  ACCUEIL -->
    	<action 
    		path="/accueil"
    		parameter="/jsp/accueil.jsp"
    		type="action.accueilAction">
    	</action>
    </action-mappings>
    Ca c'est pour lui dire que les champs saisis sont à mettre dans ton bean AuthentificationBean. A la soumission de ton formulaire (clic sur le bouton submit), tu vas passer par la classe IndexAction située dans src/action.
    La tu pourras récupérer les champs saisis en faisant :
    dans IndexAction (qui hérite de rg.apache.struts.action.Action) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public ActionForward execute(ActionMapping mapping,
    	    				ActionForm form,
    	    				HttpServletRequest request,
    	    				HttpServletResponse response)
    	    				throws IOException, ServletException {
                  // Cible par defaut
    	    String cible = new String("welcome");
     
                  AuthentificationBean logonForm = (AuthentificationBean)form;
    	      username = logonForm.getUsername();
    	      password = logonForm.getPassword();
    ...
                // redirection vers la vue appropriee
    	    return (mapping.findForward(cible));
    Si tu fais cela, tu fais la verif de l'identité du user dans ta classe IndexAction. Si succes d'authentification alors cible = success, sinon tu set cible = echec, et grâce au mapping dans struts config ca va te diriger direct sur accueil.jsp si cible est égal à "success" et ca va rester sur index.jsp si cible est égal à echec.

    Anne

  4. #4
    Expert confirmé

    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
    Par défaut
    org.apache.jasper.JasperException: /index.jsp(51,2) Impossible de trouver une méthode de mise à jour pour l'attribut: name
    Dans les versions récentes de Struts, les attributs name et type du tag html:form n'existent plus dans la tld.

    Il suffit donc de coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/accueil">
    par contre, dans le struts-config.xml, il faut ajouter l'attribut name="frmAuthentification" dans le mapping de ton Action de path /accueil.

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Ca marche!
    Merci beaucoup...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2007, 16h43
  2. [pyserial.py] Débutant qui s'embourbe avec ce module
    Par Levaillant dans le forum Général Python
    Réponses: 5
    Dernier message: 08/02/2007, 09h55
  3. [débutant] Pbl sur Etat avec sous formulaire
    Par william_58 dans le forum Access
    Réponses: 5
    Dernier message: 18/07/2006, 22h41
  4. control de formulaire qui marche avec IE et non mozilla
    Par epeichette dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/03/2005, 16h47

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