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 :

Problème de forward de l'action


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Par défaut Problème de forward de l'action
    Bonjour je debute sous struts 1.3.8

    j'ai fait un petite application pour login d'un utilisateur mais mon action ne fait aucun forward vers la page d'acueil, tout juste j'ai une page blanche, il y a aucun affichage
    est ce quelqu'un peut m'aider ?

    voici mon web.xml :
    Code xml : 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
     <?xml version="1.0" encoding="iso-8859-1" ?> 
      <!DOCTYPE web-app (View Source for full doctype...)> 
    - <web-app>
      <display-name>Welcome to home page</display-name> 
    - <!--  Standard Action Servlet Configuration (with debugging) 
      --> 
    - <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>detail</param-name> 
      <param-value>2</param-value> 
      </init-param>
      <load-on-startup>1</load-on-startup> 
      </servlet>
    - <!--  Standard Action Servlet Mapping 
      --> 
    - <servlet-mapping>
      <servlet-name>action</servlet-name> 
      <url-pattern>*.do</url-pattern> 
      </servlet-mapping>
    - <!--  The Usual Welcome File List 
      --> 
    - <!--  Struts Tag Library Descriptors 
      --> 
    - <taglib>
      <taglib-uri>/WEB-INF/struts-bean</taglib-uri> 
      <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> 
      </taglib>
    - <taglib>
      <taglib-uri>/WEB-INF/struts-html</taglib-uri> 
      <taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
      </taglib>
    - <taglib>
      <taglib-uri>/WEB-INF/struts-logic</taglib-uri> 
      <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> 
      </taglib>
    - <taglib>
      <taglib-uri>/WEB-INF/struts-nested</taglib-uri> 
      <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> 
      </taglib>
    - <welcome-file-list>
      <welcome-file>login.jsp</welcome-file> 
      </welcome-file-list>
      </web-app>
    Voici mon struts-config.xml

    Code xml : 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
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
      <!DOCTYPE struts-config (View Source for full doctype...)> 
    - <struts-config>
    - <form-beans>
      <form-bean name="loginForm" type="app.LoginForm" /> 
      </form-beans>
    - <!--  <global-forwards 
                   type="org.apache.struts.action.ActionForward">
     
          	</global-forwards> 
      --> 
    - <action-mappings>
    - <action path="/login" type="app.LoginAction" unknown="true" name="loginForm" scope="request" input="/login.jsp" validate="true">
      <forward name="success" path="/connected.jsp" redirect="true" /> 
      </action>
      </action-mappings>
      <message-resources parameter="app.MessageResources" /> 
    - <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
      <set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml, /WEB-INF/validation.xml" /> 
      </plug-in>
      </struts-config>
    Mon 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
    package app;
    import org.apache.struts.action.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.validator.*;
     
     
    public class LoginForm extends ActionForm {
    	private String username;
    	private String password;
     
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getPassword() {
     
    		return password;
    	}
    	public void setPassword(String password) {
     
    		this.password = password;
            }
     
          public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
     ActionErrors errors = new ActionErrors();
       if (this.getUsername().length()<2 && this.getPassword().length() < 3) { 
              errors.add("username", new ActionMessage("error.index.usename"));
              errors.add("password", new ActionMessage("error.index.password")); 
          }
     
        return errors;
      }
     
     
     
       public void reset(ActionMapping mapping, HttpServletRequest request) {
     
        this.password = null;
        this.username = null;
        }
     }
    et mon 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
    15
    16
    package app;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
     
    public class LoginAction extends Action {
       public static String SUCCESS = "success";
     
          public ActionForward excute(ActionMapping mapping, ActionForm form,
    	HttpServletRequest request, HttpServletResponse response) throws Exception {
             LoginForm subform = (LoginForm)form;
             request.setAttribute("username", subform.getUsername());
             request.setAttribute("password", subform.getPassword());
     
           return (mapping.findForward(SUCCESS));
           }
        }
    ma page d'accueil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
    ...................
     
     Bienvenue  <bean: write  name="loginForm" property="username"/>
     
    .......
    </html>
    // cette page ne s'affiche pas

  2. #2
    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
    Pourquoi y-a-t'il des tirets devant les balises du web.xml et du struts-config.xml ?
    Je doute que cela puisse fonctionner en l'état.
    Il serait bien de spécifier une dtd dans chacun de tes fichiers de config.
    Ainsi, tu auras des messages d'erreurs au moment du parsing s'il y a des erreurs de grammaire.

    Sinon, je suppose que c'est un problème de copier/coller mais dans ton Action LoginAction, tu as codé excute au lieu d'execute.

    Et enfin, comme tu mets le username dans le scope request via ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             request.setAttribute("username", subform.getUsername());
    Pour l'afficher, il faut coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bienvenue  <bean: write  name="username"/>
    sans oublier d'ajouter au début de la jsp la directive taglib qui pointe sur la tld struts-bean.tld.

    EDIT : En fait, je n'avais pas fait attention mais comme tu as mis l'attribut redirect à true dans le forward, les objets mis dans le scope request sont perdus.
    Tu ne pourras donc pas afficher le username dans la page connected.jsp.
    Donc, soit tu enlèves l'attribut redirect="true", soit tu mets le username dans le scope session.

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

Discussions similaires

  1. [Turtle] problème avec forward
    Par julien.63 dans le forum Général Python
    Réponses: 12
    Dernier message: 08/03/2007, 17h51
  2. [Servlet] Problème niveau Forward
    Par helter_skelter dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/08/2006, 21h23
  3. [Servlet] Problème requestDispacher.forward et CSS
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/07/2006, 12h58
  4. Problème message d'erreur et action sur clic
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 26/09/2005, 12h10
  5. [JSP] Problème avec forward et param
    Par seb55555 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 13/12/2004, 12h13

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