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 :

[Struts][Tiles] Probleme d'action mapping avec un dynaform


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 17
    Points
    17
    Par défaut [Struts][Tiles] Probleme d'action mapping avec un dynaform
    Salut a tous,

    Je me suis mis il y a peu sur struts et tiles, avant j'ai fait enormement de jsp basique...et j'ai fais la chose suivante en utilisant struts + tiles:

    Voila mon fichier tiles-definitions.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
     
    <tiles-definitions>
     
    	<definition name="annuaire.index" path="/layouts/layout.jsp">
    		<put name="title" value="Annuaire des etudiants de I2A"/>
    		<put name="left" value="/login.jsp"/>
    		<put name="contents" value="/annuaire.jsp"/>
    		<put name="bottom" value="/bottom.html"/>
    	</definition>
     
    	<definition name="annuaire.user.home" extends="annuaire.index">
    		<put name="left" value="/home.jsp"/>
    	</definition>
     
    </tiles-definitions>
    Voici par ailleurs le 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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
       <form-beans >
          <form-bean name="enterForm" type="org.apache.struts.action.DynaActionForm">
             <form-property name="password" type="java.lang.String" />
             <form-property name="username" type="java.lang.String" />
          </form-bean>
     
       </form-beans>
     
       <action-mappings>
          <action name="enterForm" path="/enter" scope="request"
             type="isl.annuaire.actions.EnterAction">
          <forward name="hello" path="annuaire.user.home"/>
          </action>
     
       </action-mappings>
       	<plug-in className="org.apache.struts.tiles.TilesPlugin" >
     
        	<!-- Path to XML definition file -->
        	<set-property property="definitions-config"
                          value="/WEB-INF/tiles-definitions.xml"/>
        	<!-- Set Module-awareness to true -->
        	<set-property property="moduleAware" value="true"/>
      	</plug-in>
     
    </struts-config>
    Le fichier de squelette dont se sert tiles

    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
     
    <jsp:root version="1.2"
               xmlns:jsp="http://java.sun.com/JSP/Page"
               xmlns:tiles="/WEB-INF/struts-tiles.tld"
               xmlns:html="/WEB-INF/struts-html.tld">
     
    <jsp:directive.page contentType="text/html; charset=ISO-8859-1"/>
    <html:html xhtml="true">
      <head>
      	<link href="layout.css" rel="stylesheet"/>
        <title><tiles:getAsString name="title"/></title>
      </head>
      <body>
        <!-- div de menu -->
        <div id="left">
          <tiles:insert attribute="left"/>
        </div>
     
        <!-- div principal de l'application -->
        <div id="contents">
          <tiles:insert attribute="contents"/>
        </div>
     
        <!-- le div du haut -->
        <div id="bottom">
          <tiles:insert attribute="bottom"/>
        </div>
      </body>
    </html:html>
     
    </jsp:root>
    bon pour faire un peu court je vais juste mettre, la page 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
     
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:form action="/enter" method="post">
    <table>
    <th>Connection</th>
    <tr>
     <td>Login</td>
     <td><html:text property="username" size="20"/></td>
    </tr>
     
    <tr>
     <td>Mot de passe</td>
     <td><html:text property="password" size="20"/></td>
    </tr>
     
    <tr>
     <td colspan="2"><html:submit property="submit" value="Identification"/></td>
    </tr>
    </html:form>
     
    </table>
    et enfin le code la servlet correspondant a l'action /enter le fichier se nomme EnterAction.java (je mets pas ici les imports)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class EnterAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    		HttpServletResponse response) {
    		DynaActionForm enterForm = (DynaActionForm) form;
    		System.out.println("hellooooooooooo");
    		return mapping.findForward("hello");
    	}
     
    }
    et dans ma page index.jsp il y a juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    <tiles:insert definition="annuaire.index" flush="true"/>
    ------------------------------------------------------------------------------------------------------

    Alors quand je tape http://localhost:8080/appli, il m'affiche bien le formulaire dynamique plus le contenu des deux autres pages sur la page d'accueil.

    Par contre si j'appuie sur le bouton "Identification" il me renvoie une page blanche et l'url dans le navigateur qui s'affiche est http://localhost:8080/appli/enter.do

    Normalement je m'attendais a ce qu'il m'affiche a la place du formulaire le contenu de la page home.jsp qui ne contient que ce simple code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h1>Bonjour page d'accueil</h1>
    Si quelqu'un connait comment regler ce probleme merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Ce qui est surprenant, c'est que dans un cas, les tiles fionctionnent mais pas dans l'autre ...
    Le seule difference que je vois entre les 2, est que, dans un cas, l'aafichage ne provient d'une action Struts et dans l'autre oui ...

    As tu essaye de creer une action, de test, uniquement pour appeler la page d'index ?
    Si, de cette facon, la page ne s'affiche plus, tu seras un peu plus fixe.
    Ca voudra dire que Struts n'arrive pas a genener des pages, peut a cause d'un probleme au niveau du plug-in...

    Sinon, je ne vois pas du tout ce que cela pourrait etre ... Tout a l'air correct.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    j'ai reussi a le faire marcher: fallait mettre dans le fichier struts-config.xml des global-forwards , voila ce que donne au final 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
       <data-sources />
       <form-beans >
          <form-bean name="enterForm" type="org.apache.struts.action.DynaActionForm">
             <form-property name="password" type="java.lang.String" />
             <form-property name="username" type="java.lang.String" />
          </form-bean>
     
       </form-beans>
     
       <global-exceptions />
     
       <global-forwards>
       	<forward name="home" path="annuaire.user.home"/>
       </global-forwards>
     
       <action-mappings>
          <action name="enterForm" path="/enter" scope="request"
             type="isl.annuaire.actions.EnterAction">
          <forward name="hello" path="home"/>
          </action>
     
       </action-mappings>
     
     
     
     
       <message-resources parameter="isl.annuaire.ApplicationResources"/>
     
       	<plug-in className="org.apache.struts.tiles.TilesPlugin" >
     
        	<!-- Path to XML definition file -->
        	<set-property property="definitions-config"
                          value="/WEB-INF/tiles-definitions.xml"/>
        	<!-- Set Module-awareness to true -->
        	<set-property property="moduleAware" value="true"/>
      	</plug-in>
     
    </struts-config>

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Je ne comprends toujours pas pourquoi cela ne marchait pas avant ...

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

Discussions similaires

  1. Struts/Tiles avec Netscape
    Par MikoShiva dans le forum Struts 1
    Réponses: 1
    Dernier message: 20/04/2006, 15h29
  2. [STRUTS- TILES] Chainage d'actions ou Tiles Controller
    Par DarkWark dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/01/2006, 10h47
  3. [STRUTS] Problème Name+Action d'un Formulaire
    Par javaSudOuest dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/09/2005, 17h28
  4. Réponses: 2
    Dernier message: 20/08/2005, 19h23
  5. [STRUTS][TILES] Problème sur actions génériques
    Par xv-mnt dans le forum Struts 1
    Réponses: 1
    Dernier message: 02/08/2005, 10h15

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