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

JSF Java Discussion :

[JSF] Simplifier l'utilisation de Tiles


Sujet :

JSF Java

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut [JSF] Simplifier l'utilisation de Tiles
    Bonjour,

    j'utilise JSF (MyFaces) dans le cadre d'une application intranet avec Tiles pour la composition des pages (en tete, menu, corps, ...)

    Pour l'instant, on a un fichier de config (tiles-config.xml), une jsp de mise en page (template.jsp) Cette dernière fait appele à d'autres jsp statiques (header.jsp, footer.jsp, ...) puis a différentes pages jsp qui constituent le corps.

    Le problème que je rencontre est lié à la duplication des pages jsp:
    en effet, si l'utilisateur tape http://server/toto.jsp, il faut créer une page toto.jsp qui fait appele à Tiles pour composer une page avec header.jsp, footer.jsp et une autre page toto-body.jsp
    Donc dans toto.jsp, il n'y a rien d'autre qu'un redirection vers tiles

    je voudrais savoir si il n'y a pas moyen de remplacer toto.jsp par un filtre qui intercepte l'url, ou une déclaration dans le faces-config ou une autre solution
    Parce que avec plus de 50 pages, la duplication fait un peu fouilli

    merci d'avance, j'espère avoir été assez clair

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    dans ton fichier de config, tu peux rajouter dans ton tag <definition> un attribut controllerClass

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <definition name="gestionUser" extends="hcf_tab" controllerClass="com.prylos.bean.createuser.TileController">
    		<put name="body" value="Lien.jsp"  />
    </definition>
    ensuite chaque fois que tu appeleras une template utilisant cette definition tu passe dans ta classe

    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
     
    import java.io.IOException;
     
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.tiles.ComponentContext;
    import org.apache.struts.tiles.Controller;
     
    public class TileController implements Controller {
     
     
     
    	public void perform(ComponentContext tilesContext, HttpServletRequest request,
    			HttpServletResponse reponse, ServletContext context)
    			throws ServletException, IOException {
     
     
    		String str = (String)tilesContext.getAttribute("body");
    		System.out.println(str);
    		String lien = User_apps.layout;
    		tilesContext.putAttribute("body",lien);
     
     
    		// TODO Auto-generated method stub
     
    	}
     
    }
    tu recupere l'attribut body : String str = (String)tilesContext.getAttribute("body");

    et tu lui set un nouvelle attribut : tilesContext.putAttribute("body",lien);

  3. #3
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    C'est peut être stupide, mais STRUTS le fait trés bien grâce à son struts-config.xml (qui permet de remplacer une page par une action).

    Hors la nouvelle version de struts est capable de fonctionner en JSP classique et en JSF. Tu pourrait peut-être trouver quelque chose d'intéréssant là : http://struts.apache.org/struts-action/

Discussions similaires

  1. [Debutant]JSF et creation/utilisation de composant
    Par jdvacheron dans le forum JSF
    Réponses: 6
    Dernier message: 29/08/2008, 14h26
  2. Classe générique pour simplifier l'utilisation des fichiers
    Par Oprichnik dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 10
    Dernier message: 09/08/2007, 23h15
  3. Appel d'une page JSF : quel tag utiliser ?
    Par Niniz dans le forum JSF
    Réponses: 10
    Dernier message: 12/07/2007, 10h08
  4. Simplifier l'utilisation de compare with et replace with
    Par guipom dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 08/01/2007, 11h07
  5. Portage d'un prog pour simplifier l'utilisation
    Par Tr@nkill dans le forum Langage
    Réponses: 7
    Dernier message: 21/04/2006, 09h24

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