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-Layout] le treeview


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut [Struts-Layout] le treeview
    Bonjour,
    j'essaie avec le treeview mais ça marche pas chez moi
    mon fichier 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
    <?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 />
      <global-exceptions />
      <global-forwards />
     <plug-in className="fr.improve.struts.taglib.layout.workflow.LayoutPlugin"/>
    <action-mappings>  
    <action path="/treeview"  type="com.yourcompany.action.TestTreeviewAction"> 
       <forward name="success" path="/index.jsp"/>
    </action>
      </action-mappings>
      <message-resources parameter="MessageResource" />
    </struts-config>
    mon fichier 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
    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
     
    package com.yourcompany.struts;
     
     
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
     
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
     
    import fr.improve.struts.taglib.layout.menu.MenuComponent;
    import fr.improve.struts.taglib.layout.util.LayoutUtils;
    public class actionTreeView extends Action {
     
    	public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
    	throws Exception
    	{
    		MenuComponent lc_menu1 = new MenuComponent(); 
    		lc_menu1.setName("java"); 
     
    		MenuComponent lc_menu11 = new MenuComponent(); 
    		lc_menu11.setTitle("Java"); 
    		MenuComponent lc_menu111 = new MenuComponent(); 
    		lc_menu111.setTitle("Sun"); 
    		lc_menu111.setLocation("http://java.sun.com"); 
    		lc_menu11.addMenuComponent(lc_menu111); 
    		MenuComponent lc_menu112 = new MenuComponent(); 
    		lc_menu112.setTitle("Eclipse"); 
    		lc_menu112.setLocation("http://www.eclipse.org"); 
    		lc_menu11.addMenuComponent(lc_menu112); 
    		lc_menu1.addMenuComponent(lc_menu11); 
            LayoutUtils.addMenuIntoSession(request,lc_menu1);
    		return mapping.findForward("success") ;
    	}
    }
    mon index: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
    <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>
     
    <html>
    <head>
    	<layout:skin includeScript="true"/>
    	<script src="/config/javascript.js"></script>	
    </head>
    <body>
    <layout:form action="treeview" styleClass="FORM">
    <layout:treeview name="java"/>
    </layout:form>
    </body></html>
    déja il me signale une erreur que la ressource demandé n'est pas disponible pourtant tout est bien fait.
    Déja j'aimerais faire marcher le treeview et je sais pas si ca va marcher avec le code que j'ai fait

  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
    Premièrement, il y a un ordre à respecter dans les balises du struts-config.xml.
    Ensuite, il faudrait définir la bonne Action.
    Dans struts-config.xml, tu as mis com.yourcompany.action.TestTreeviewAction.
    Or, le code que tu as posté est celui de l'Action com.yourcompany.struts.actionTreeView :
    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
    <?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 />
      <global-exceptions />
      <global-forwards />
    <action-mappings>  
    <action path="/treeview"  type="com.yourcompany.struts.actionTreeView"> 
       <forward name="success" path="/index.jsp"/>
    </action>
      </action-mappings>
      <message-resources parameter="MessageResource" />
     <plug-in className="fr.improve.struts.taglib.layout.workflow.LayoutPlugin"/>
    </struts-config>
    Et enfin, pour que le treeview s'affiche, il faut exécuter l'Action actionTreeView avant l'appel de la jsp et simplement coder ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
     
    <html>
    <head>
    	<layout:skin includeScript="true"/>
    </head>
    <body>
       <layout:treeview name="java"/>
    </body>
    </html>

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Merci d'abord pour votre réponse
    j'ai les modifications mais cette fois ci ça m'affiche une erreur
    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
    Etat HTTP 500 - 
     
    --------------------------------------------------------------------------------
     
    type Rapport d'exception
     
    message 
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception 
     
    org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Menu repository not found
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    javax.servlet.ServletException: javax.servlet.jsp.JspException: Menu repository not found
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:87)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    javax.servlet.jsp.JspException: Menu repository not found
    	fr.improve.struts.taglib.layout.util.LayoutUtils.getMenu(LayoutUtils.java:447)
    	fr.improve.struts.taglib.layout.treeview.TreeViewTag.doEndLayoutTag(TreeViewTag.java:94)
    	fr.improve.struts.taglib.layout.LayoutTagSupport.doEndTag(LayoutTagSupport.java:47)
    	org.apache.jsp.index_jsp._jspx_meth_layout_005ftreeview_005f0(index_jsp.java:124)
    	org.apache.jsp.index_jsp._jspService(index_jsp.java:76)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.13.
    --------------------------------------------------------------------------------

    Apache Tomcat/6.0.13

  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
    Tu as ce message d'erreur sans doute parce que tu appelles la jsp avant d'exécuter l'Action.
    Le treeview ne peut s'afficher dans la page jsp que si tu exécutes l'Action avant.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Tu as ce message d'erreur sans doute parce que tu appelles la jsp avant d'exécuter l'Action.
    Le treeview ne peut s'afficher dans la page jsp que si tu exécutes l'Action avant.

    cela veut dire que j'execute monAction.java et apres la jsp?
    j'ai pas compris comment procéder :s

  6. #6
    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
    Ben oui, c'est logique. Tu ne peux pas afficher le treeview avant de l'avoir constitué.
    L'Action actionTreeview qui constitue le treeview doit donc s'exécuter avant la jsp.

    Si le treeview est le premier élément que tu affiches dans ton application, tu peux suivre les indications de la FAQ pour définir une Action comme page d'accueil.

    Allez, je te donne les étapes à suivre.

    Il faut donc définir un global-forward dans le struts-config.xml qui renvoie vers l'Action actionTreeview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <global-forwards>
       <forward name="treeview" path="/treeview.do"/>
    </global-forwards>
    renommer index.jsp en treeview.jsp

    modifier le forward dans le mapping de l'Action actionTreeview pour faire le forward vers la jsp treeview.jsp :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action path="/treeview"  type="com.yourcompany.struts.actionTreeView"> 
       <forward name="success" path="/treeview.jsp"/>
    </action>
    créer la page index.jsp et y coder le tag logic:forward vers le global-forward de name treeview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
     
    <logic:forward name="treeview"/>

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 05/03/2009, 02h46
  2. [Struts-Layout] treeview et message resources
    Par Calahad dans le forum Struts 1
    Réponses: 12
    Dernier message: 02/10/2006, 10h01
  3. [Struts layout] Treeview
    Par Varroux dans le forum Struts 1
    Réponses: 4
    Dernier message: 11/07/2006, 12h01
  4. [STRUTS-LAYOUT] Treeview
    Par DarkWark dans le forum Struts 1
    Réponses: 13
    Dernier message: 29/03/2006, 22h51
  5. [STRUTS-LAYOUT] Le Treeview
    Par DarkWark dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/03/2006, 12h22

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