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] problème de redirection


Sujet :

Struts 1 Java

  1. #1
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut [Débutant] problème de redirection
    Bonjour,
    je veux réaliser ma première application avec hibernate et struts, pour hibernate, je crois avoir réglé tous mes problèmes, maintenant j'ai décidé de me lancer dan struts.

    Pour cela j'ai chopé un tuto tout simple sur le net, je l'ai bien lu et j'ai essayer de mettre ce que j'ai appris en pratique :

    L'application de teste que je voulais réaliser consiste en une page Login.jsp, avec un mot de identifiant et un mot de passe, qui redirige vers une autre page Connected.jsp qui est sensé juste afficher un gentil Bonjour et ré-afficher l'identifiant saisi dans la première page.

    Bon, si je met un poste sur ce forum, c'est qu'il y a un ic .
    mon problème est que lorsque je clique sur le bouton « submit » ce dernier m'envoie sur une page blanche dont l'adresse est localhost.../login.do

    Je ne comprend pas pourquoi la redirection ne se fait pas bien alors que j'ai édité mon fichier struts-config.xml pour assurer cette redirection.

    Je vous prie de bien vouloir m'aider à résoudre ce problème, je suis un débutant struts et je ne trouve pas de solution sur le net.

    Pour m'aider à résoudre mon problème, voici les fichier principaux de mon « application » :

    Login.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
     
    <%@ page language="java" import="java.util.*"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html>
    <head>
    <title>Veuillez vous identifier</title>
    </head>
    <body>
     
    <h1 align="center">Veuillez votre identifier</H1>
     
    <div align="center"><html:form action="login" method="POST"
    	focus="username">
                    identifiant : <html:text property="username" />
    	<BR />
                    mot de passe : <html:password property="password" />
    	<BR />
    	<html:submit property="submit" />
    </html:form></div>
    </body>
    </html>
    Cennected.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
     
    <%@ page language="java" import="java.util.*"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <html>
    <head>
    <title>Confirmation de connexion</title>
    </head>
    <body>
    <h1 align="center">Confirmation de connexion</H1>
     
    <div align="center">Bonjour Mr <bean:write name="LoginForm"
    	property="username" /></div>
     
    </body>
    </html>
    LoginAction.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
     
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
     
    public class LoginAction extends Action {
     
        public ActionForward perform(
    	ActionMapping mapping, ActionForm _form,
    	HttpServletRequest request, HttpServletResponse response
        ) throws Exception {
            // On traite la requête cliente
    	LoginForm form = (LoginForm) _form;
    	System.out.println("Struts in action "
    	     + form.getUsername() + " - " + form.getPassword());
            // On redirige vers la vue adaptée (mais ça ne marche pas ici :'(
    	return mapping.findForward("Connected");
        }
    }
    LoginForm.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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMessage;
     
    /**
     * @author Amine
     * 
     */
     
    public class LoginForm extends ActionForm {
     
    	public static final long serialVersionUID = -10;
     
    	private String username = "root";
     
    	private String password = "azerty";
     
    	public String getUsername() {
    		System.out.println("On passe par UserBean.getUsername !");
    		return this.username;
    	}
     
    	public void setUsername(String username) {
    		System.out.println("On passe par UserBean.setUsername !");
    		this.username = username;
    	}
     
    	public String getPassword() {
    		System.out.println("On passe par UserBean.getPassword !");
    		return this.password;
    	}
     
    	public void setPassword(String password) {
    		System.out.println("On passe par UserBean.setPassword !");
    		this.password = password;
    	}
     
    	public ActionErrors validate(ActionMapping mapping,
    			HttpServletRequest request) {
    		ActionErrors errors = new ActionErrors();
     
    		if (this.getUsername() == null || this.getUsername().equals("")) {
    			errors.add("username", new ActionMessage("Veuillez saisir votre identifiant"));
    			System.out.println("Error : bad username");
    		}
     
    		if (this.getPassword() == null || this.getPassword().equals("")) {
    			errors.add("password", new ActionMessage("Veuillez saisir votre mot de passe"));
    			System.out.println("Error : bad password");
    		}
     
    		return errors;
    	}
    }
    web.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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <web-app id="WebApp_ID" xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
    ...
    	<servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>application</param-name>
                <param-value>ApplicationResources</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
    ...
          <jsp-config>
    		<taglib>
    			<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    			<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    			<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    			<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
    			<taglib-location>
    				/WEB-INF/struts-nested.tld
    			</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    			<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
    		</taglib>
    	</jsp-config>
    </web-app>
    merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il faudrait aussi le struts-config.xml

    A+

  3. #3
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    lol, je l'ai oublié
    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
     
    <?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>
    	<form-beans>
    		<form-bean name="LoginForm" type="LoginForm" />
    	</form-beans>
    	<global-forwards>
    		<forward name="Connected" path="/Connected.jsp"></forward>
    	</global-forwards>
    	<action-mappings>
    		<action input="/Login.jsp" path="/login" name="LoginForm"
    			type="LoginAction" scope="request" forward="Connected">
    		</action>
    	</action-mappings>
    </struts-config>

  4. #4
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Dans login.jsp,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="login" method="POST" focus="username">
    rajoute / devant login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="/login" method="POST" focus="username">

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ton mapping est incorrect. Essayes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <action input="/Login.jsp" path="/login" name="LoginForm"  type="LoginAction" scope="request">
       <forward name="Connected" path="/Connected.jsp"/>
    </action>

  6. #6
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    Salut,
    Je ne comprend pas, j'ai fait les corrections suggérées mais le bouton Submit me redirige toujour vers ne page blache d'adresse : localhost:8080/monaplication.login.do :'( :'(

  7. #7
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    Essayes de remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="login" method="POST" focus="username">
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="/login.do" method="POST" focus="username">

  8. #8
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    fait,
    mais G le mêm problème ...

  9. #9
    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
    Quelle version de Struts utilises-tu ?

    Normalement, ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="login" focus="username">
    method="post" est positionnée automatiquement par défaut par le tag html:form.

    Sinon, il faudrait mettre tes Actions LoginAction et LoginForm dans des packages et modifier les attributs type en conséquence dans le struts-config.xml.

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Si tu mets un point d'arrêt dans l'action, tu y passes ?
    J'aurais mis la méthode execute moi, pas perform (deprecated)...

    A+

  11. #11
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Citation Envoyé par OButterlin
    J'aurais mis la méthode execute moi, pas perform (deprecated)...
    +1
    anayathefirst test ce code, j'ai remplacé perform par execute

    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
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
     
    public class LoginAction extends Action {
     
      public ActionForward execute(ActionMapping mapping, 
                                   ActionForm _form, 
                                   HttpServletRequest req, 
                                   HttpServletResponse res) throws Exception {
     
            // On traite la requête cliente
    	LoginForm form = (LoginForm) _form;
    	System.out.println("Struts in action "
    	     + form.getUsername() + " - " + form.getPassword());
            // On redirige vers la vue adaptée
    	return mapping.findForward("Connected");
        }
    }
    A bientôt

  12. #12
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    c'est exactement ça... merci les gas.
    ça m'apprendra à faire du copy/paste sur des vieux sites utilisant des méthodes qui ne sont plus accéptables

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

Discussions similaires

  1. Php débutant : Problème de redirection
    Par gueguenk dans le forum Langage
    Réponses: 1
    Dernier message: 14/03/2013, 10h53
  2. [Débutant] Problème de lenteur et de redirection d'URL
    Par homeostasie dans le forum Apache
    Réponses: 2
    Dernier message: 05/03/2009, 17h45
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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