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 :

TILES et STRUTS HTML


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut TILES et STRUTS HTML
    salut,
    je programme actuellement une application qui utilise tiles pour la partie template et les taglib html de struts pour afficher tout ce qui est formulaire,image ect... et aussi pour les Actions bien sûr!!

    Pour mettre en place le template j'ai commencé par créer tiles-definitions.html
    <tiles-definitions>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
      <!-- Definition de la page mere.                -->
      <definition name="site.mainLayout" path="/tiles-layout/layout.jsp">
          <put name="header" value="header.jsp" />
          <put name="menu"   value="menu.jsp" />
          <put name="footer" value="footer.jsp" />
          <put name="body"   value="()" />
      </definition>
     
    <!-- ici on étend la définition mere pour definir le body>
        <definition name="site.index.page" extends="site.mainLayout" >
          <put name="body"   value="body.jsp" />
        </definition>
    Apres on definit le layout.jsp(construction de la page)
    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
     
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    <HTML>
      <HEAD>
     
      </HEAD>
     
    <body bgcolor="#ffffff" text="#000000" link="#023264" alink="#023264" vlink="#023264">
     
        <tiles:insert attribute='header'/>
        <tiles:insert attribute='menu'/>
        <tiles:insert attribute='body' />
        <tiles:insert attribute="footer" />
     
    </html>
    et on finit par l'index.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
     
    <tiles:insert page="site.mainLayout" flush="true">
      <tiles:put name="header" value="header.jsp" />
      <tiles:put name="footer" value="footer.jsp" />
      <tiles:put name="menu"   value="Menu.jsp" />
      <tiles:put name="body"   value="body.jsp" />
    </tiles:insert>

    MA PREMIERE QUESTION
    -->A partir de TILES j'ai essayé de définir plusieurs body en fonction du lien du MENU qui sera selectionné par le user mais je n'arrive à en définir qu'un seul et unique, or moi je veux pouvoir afficehr plusieurs pages au centre dans l'index.jsp ,Donc j'aimerai savoir si vous avez une solution??
    Doit-on inserer plusieurs définitions dans Index.jsp pour qu'il prenne en compte les pages definies dans tiles-definitions???????

    MA DEUXIEME QUESTION
    Comme je l'ai dit j'utilise STRUTS, mais j'ai un gros soucis, lorsque je lance mon application, et que j'arrive sur index.jsp, il me lance une belle erreur(can't find action mapping) et pour quoi cela? je vais vous le dire, parce qu'il n'a pu initialiser mon struts-config.xml, en conséquence toutes les pages à l'interieur de mon index qui font appelle à une action Struts PLANTENT ROYALEMENT, vu que struts-config.xml n'est pas initialisé.

    Pour lancé mon application à l'heure actuelle je suis obligé de faire dans la barre d'adresse un index.do, apres cette opération effectuée je change le chemin en /jsp/index.jsp et là comme struts-config.xml a été initialiser je n'ai plus d'erreur, pfiou c'est pas tres cool tout ca!!!

    Donc Y a t-il un moyen d'initialisé struts-config à partir de l'index.jsp, sans faire cette manip pas tres académique?(Question a 1 million de dollars)


    Voilà je sais pas si j'ai été clair mais je galere vraiment sur cette application que je dois finir dans 1 moi et j'ai vraiment besoin d'un coup de pouce, je vous remercie d'avance.
    Si je ne suis pas clair dites le moi je reexplique!!

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Plusieurs body dans une même page ? j ai jamais vu ca

    pour ta 2eme question post ton web.xml

    mais pour l init a partie de la JSP c est grillé à mon avis vu que ton fichier de conf est loadé au démarrage de ton application

    un appel par JNDI tu me diras mais à mon avis non

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut
    je ne veux pas mettre plusieurs body dans la même page, je souhaite par exemple:
    ona un menu avec 4 liens:
    lien1
    lien2
    lien3
    lien4

    je clique sur lien1 il maffiche profil.jsp dans le body
    je clique sur lien2 il m'affiche bonjour.jsp dans le body
    moi j' narrive a faire la liaison qu'avec seulement un lien du menu mais pas tous!!!

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Ben c est pas pareil entre générer une page qui contient
    <body>
    tru tru tru
    </body>

    <body>
    truc tru ctruc
    </body>

    ...

    Si tu postais ton code ca irait mieux aussi ..

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut
    voici mon web.xml

    mais mon code je te l'ai passé
    c'est ce que j'ai mis dans mon premiere poste
    c'est simple disons que j'ai
    une page bonjour.jsp qui contient juste "bonjour"
    une page auvoir.jsp qui contient jsute "auvoir"
    je veux qu' cliquant sur les lien du menu j'affiche soit bonjour soit au revoir

    En fait je veux arriver a reproduire le meme effet que les FRAME en html
    ou bien encore que les PSEUDO-FRAME en php
    genre en php ca donnerait une page centre.php
    dedans y aurait un switch($_GET[page])
    case 'bonjour' :include bonjour.jsp
    case 'fsdfsdfs':include tata.jsp
    voila ce que je veux mais avec tiles je nyarrive pas a inserer des bout de code dans le body


    pour la 2eme question: peut-être je pourrait faire une page html "bidon" avant l'arrivée sur l'appli avec un lien vers index.do pour loader struts-config??
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Par défaut
    Petite question : quelle version de struts tu utilises ?
    EDIT: a priori la 1.1 voir 1.0

    Je ne veux pas mettre plusieurs body dans la même page, je souhaite par exemple:
    ona un menu avec 4 liens:
    lien1
    lien2
    lien3
    lien4
    je clique sur lien1 il maffiche profil.jsp dans le body
    je clique sur lien2 il m'affiche bonjour.jsp dans le body
    moi j' narrive a faire la liaison qu'avec seulement un lien du menu mais pas tous!!!
    C'est la fonctionnalité de base de Tiles.
    C'est dans ce cas assez simple. Comme l'ensemble des pages se basent sur un (ou plusieurs) modèle, tu dois simplement définir tes nouvelles pages dans ton tiles-defs.xml, comme dérivées d'un modèle en indiquant les parties qui diffèrent de ce modèle :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://struts.apache.org/dtds/tiles-config_1_3.dtd">
    <tiles-definitions>
    	<definition name="htmllayout" path="/WEB-INF/tiles-templates/htmllayout.jsp">
    		<put name="title" type="string" value="Changez moi" />
    		<put name="head" value="/WEB-INF/tiles-atoms/head.jsp" />
    		<put name="main" value="/WEB-INF/tiles-atoms/main.jsp" />
    		<put name="foot" value="/WEB-INF/tiles-atoms/foot.jsp" />
    	</definition>
    	<definition name="htmldefault.page" extends="htmllayout">
    		<put name="title" type="string" value="La page html par defaut." />
    		<put name="main" value="/WEB-INF/tiles-atoms/default.jsp"/>	
    	</definition>
    	<definition name="html02.page" extends="htmllayout">
    		<put name="title" type="string" value="Page html 02." />
    		<put name="main" value="/WEB-INF/tiles-atoms/html02.jsp"/>	
    	</definition>
    	<definition name="html03.page" extends="htmllayout">
    		<put name="title" type="string" value="Page html 03." />
    		<put name="main" value="/WEB-INF/tiles-atoms/html03.jsp"/>	
    	</definition>
    	<definition name="html04.page" extends="htmllayout">
    		<put name="title" type="string" value="Page html 03." />
    		<put name="main" value="/WEB-INF/tiles-atoms/html04.jsp"/>	
    	</definition>
    </tiles-definitions>
    Dans les définitions précédentes, je défini le template htmllayout et 4 pages (htmldefault.page, html02.page, html03.page, html04.page) qui dérivent de cette définition que par le changement de la partie main et de la chaîne title.
    Cela doit répondre à ta question n°1.

    Pour la question n°2, j'avoue que j'ai des difficultés à te comprendre. Strust marche bien en général . Normalement, quand tu définis ta page de garde en tant que définition Tiles (index.page), il est conseille d'avoir une jsp de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
    <tiles:insert definition="htmldefault.page"/>
    Sinon tu utilises une redirection vers une action qui te renvoie vers ta définition de page d'index (c'est dans la FAQ).

    Pour les problèmes "d'initialisation" de struts-config.xml, j'ai du mal à comprendre en quoi il n'est pas initialisé : quels sont les messages d'erreur que tu as ?

    PPDL.

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut
    Deja jte rmercie pour avoir pris la peine d'avoir lu ce long message que j'ai posté.
    Ensuite pour ma deuxieme question je vais t'expliqué mon soucis en detail.

    En fait dans mon index .jsp
    j'ai un header
    un menu
    un fichier profil.jsp qui contient un formulaire et donc forcément une action="/profil"


    Mais ce qui ce passe c'est que lorsque je run mon application et que j'arrive sur index.jsp, il me jette une jolie erreur cannot find Action Mapping(il ne trouve pas d'action), ensuite si cette fois-ci, je fais un profil.do dans la barre d'adresse, cette fois il m'affiche correctement la page profil.
    Ensuite je reessaye un index.jsp dans la barre d'adressee et là comme par magie il me l'affiche bien. Bien moi je pense que c'est parce qu'en tappant profil.do j'ai "initialiser" struts-config, tandis qu'en allant directement sur index.jsp je ne l'initialise pas!, pkoi? ca je ne sais pas!!!

    j'avais aussi essayé de faire un index.do avant de faire index.jsp et c'etait le meme resultat, apres l'index.do, ma page index.jsp s'affichait enfin.



    Pour la question numero 1:
    Si on souhaite afficher tes 4 pages(htmldefaut,htmlpage 1,2,3,4),... en fonction du lien qui sera cliqué
    il faudra donc faire une page avec un insert definition("htmldefaut") + une page jsp avec le code, donc 2 pages à chaque fois?

Discussions similaires

  1. Réponses: 12
    Dernier message: 03/11/2005, 12h26
  2. [Struts]HTML:FORM ET HTML:HIDDEN
    Par zurich dans le forum Struts 1
    Réponses: 6
    Dernier message: 07/02/2005, 23h30
  3. Réponses: 10
    Dernier message: 27/08/2004, 11h55
  4. [Struts]<html:errors/> request
    Par Eydoll dans le forum Struts 1
    Réponses: 5
    Dernier message: 28/07/2004, 14h14
  5. [débutant][struts]html:options
    Par GreenJay dans le forum Struts 1
    Réponses: 5
    Dernier message: 24/05/2004, 14h04

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