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 :

tag if avec jsf et facelets ?


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut tag if avec jsf et facelets ?
    Bonjour,

    je bosse sur une appli en jsf-facelets et dans une page menu.xhtml je voudrais qu'un lien s'affiche que si l'utilisateur est d'un certain type.
    le bean sessionController a la methode typeUser() qui donne le type de l'utilisateur.
    J'aurais aimé faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <h:if value1="#{sessionController.typeUser}" value2="type1" op="eq">
      <h:form id="formx">
           <h:commandLink id="link" action="navigationPageX">
    		MonLien
           </h:commandLink>
      </h:form>
    </h:if>
    Pour affocher le lien si typeUser retourne la chaine "type1".
    Est-ce possible car j'ai vu que la taglib jsf ne fournit pas le 'if'?

    Merci d'avance pour votre aide

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    attribut rendered dans ton commandLink.

    Si rendered = true ==> le lien est rendu en HTML
    Sinon il n'est pas rendu

  3. #3
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    OK merci je vais essayé.
    Mais comment fait-on dans le cas où l'on veut faire un test pour l'affichage de tout un bloc en <html: ?

    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if type==type1 alors
        <table> <tr><td>
           ....
            <h:commandLink ....
                         ...
             </h:commandLink>
        </table>
    endIf

  4. #4
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    J'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:commandLink id="link" action="navigationPageX" rendered="#{sessionController.isTypeA}">
    			 			MON LIEN
    </h:commandLink>
    Et il me dit:
    javax.faces.el.PropertyNotFoundException: /stylesheets/etu/template-menu.xhtml @72,105 rendered="#{sessionController.isTypeA}": Bean: org.esupportail.mondossierweb.web.controllers.SessionController, property: isTypeA

    Alors que j'ai bien ma méthode isTypeA dans le bean sessionController qui retourne un booleen

  5. #5
    Membre éclairé Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Par défaut
    Citation Envoyé par progamer54
    J'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:commandLink id="link" action="navigationPageX" rendered="#{sessionController.isTypeA}">
    			 			MON LIEN
    </h:commandLink>
    Et il me dit:
    javax.faces.el.PropertyNotFoundException: /stylesheets/etu/template-menu.xhtml @72,105 rendered="#{sessionController.isTypeA}": Bean: org.esupportail.mondossierweb.web.controllers.SessionController, property: isTypeA

    Alors que j'ai bien ma méthode isTypeA dans le bean sessionController qui retourne un booleen
    C'est bon j'ai trouve. Il fallait mettre l'EL : #{sessionController.typeA}
    dans rendered et non:#{sessionController.isTypeA}
    car jsf va automatiquement chercher la méthode 'isNomPropriete'
    ça marche maintenant.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Par défaut
    Tu peux également utiliser JSTL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <c:if test="#{sessionController.TypeA}">
        <h:commandLink id="link" action="navigationPageX">
            TON LIEN
        </h:commandLink>
    </c:if>
    Pour plus d'infos : http://adiguba.developpez.com/tutoriels/j2ee/jsp/jstl/

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

Discussions similaires

  1. Intégration des Facelets avec JSF & Spring
    Par crocodingo dans le forum JSF
    Réponses: 5
    Dernier message: 12/03/2011, 12h05
  2. texte riche avec jsf 2, facelets
    Par ymajoros dans le forum JSF
    Réponses: 1
    Dernier message: 22/01/2010, 10h43
  3. [facelets] Affichage Avec JSF
    Par wajdopovitch dans le forum JSF
    Réponses: 1
    Dernier message: 15/04/2009, 16h28
  4. Réponses: 3
    Dernier message: 29/04/2008, 12h33
  5. [CSS] remplacement de tags html avec css
    Par wtfu dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 28/02/2006, 15h44

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