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 :

Comment utiliser Bind avec <h:outpulink>


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut Comment utiliser Bind avec <h:outpulink>
    Bonjour,
    En fait j'ai besoin d'initialiser une classe java pour pouvoir utiliser son objet par une autre classe, pour cela j'ai pensé à utiliser un Bind avec la h:outputlink pour initialiser cette classe, qui sera ensuite utilisé par la classe qui sera dans le value de la même outputlink.

    Pouvez vous m'aider à résoudre ce problème, je ne sesse de chercher la bonne syntaxe mais rien

    Je suis débutant en JSF.
    Merci d'avance

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    si tu veux juste changer la valeur, tu n'a pas besoin de binding..
    utilise une sa valeur en expression EL et tu peux la modifier de n'importe quelle classe en java.

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Merci pour ta réponse,
    En fait je croix bien que j'ai besoin de faire un binding puisque je doit tester si une condition existe dans ma classe pour autoriser le téléchargement d'un pdf, c'est pour ca que j'utilise outputlink qui pointe vers une classe qui va générer ce pdf.
    Je doit aussi passer en argument les données récupérées par la JSF et qui interagi avec la classe qui contient mon test.

    Je ne sais pas si c'est clair ou pas, j'espère que ça l'est

    Pouvez vous m'aidez svp

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Le binding est inutile dans ton cas (et souvent, c'est utilisé à tort, mais c'est un autre débat)...
    Dans ton cas, comme le dit Sniper37, le mieux est d'avoir une méthode dans un bean Java qui retourne un booléen indiquant si l'utilisateur a le droit de télécharger ou non le fichier. Ensuite, affecter à l'attribut rendered la valeur retournée par cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputLink ... rendered="#{monBean.aLeDroitDeTelecharger}"/>
    et dans le Java, tu évalues le booléen selon tes besoins :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public boolean isALeDroitDeTelecharger() {
        boolean aLeDroit = ...;
        ...
        return aLeDroit;
    }
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Merci romaintaz pour ta réponse,
    Je crois que j'ai compri, je te remerci beaucoup, mais comme je suis débutant en jsf, peux tu stp me donner un exemple de toute la syntaxe, je ne sais pas comment référer le chemin à ma méthode boolean ( les ... dans l'exemple que tu m'a donné )
    Merci

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par skudersky Voir le message
    peux tu stp me donner un exemple de toute la syntaxe, je ne sais pas comment référer le chemin à ma méthode boolean ( les ... dans l'exemple que tu m'a donné
    Je ne saisis pas bien ce que tu veux que je précise...
    Dans mon exemple, sur le JSF, j'ai juste montré le code correspondant à l'appel de la méthode Java (le "#{monBean.aLeDroitDeTelecharger}").
    Dans la méthode Java, je ne peux pas compléter le code des ..., vu que cela dépend des conditions définissant si l'utilisateur peut ou non télécharger le fichier...

    Que souhaites-tu donc savoir ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    en fait je parlais des ... après la h:outputlink
    mais je crois comprendre que ca sera logiquement remplacé avec la value.
    Merci beaucoup, je testerai et je vous tiendrai au courant du résultat

  8. #8
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Exact, il y a un value="#{monBean.adresse}" dans ton <h:outputLink>
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  9. #9
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    j'ai testé ce que tu m'avais dit, j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputLink value="pdf_detail_cra_gen" rendered="#{collaborateur_recherche.test_gen_cra}">
    pdf_detail_cra_gen.java : la classe qui génère le pdf
    collaborateur_recherche.test_gen_cra: La méthode qui retourn true ou false pour permettre le telechargement du pdf ou pas

    j'ai l'erreur suivante:

    javax.servlet.ServletException: The class 'siroco.controleur.collaborateur.recherche' does not have the property 'test_gen_cra'
    Normalement je définis des getter et setter pour les variable pour communiquer entre mes classe java et la jsf, mais là il s'agit d'une fonction, je sais pas quoi faire?

    mais ce qui est blizzard c'est que la méthode siroco.controleur.collaborateur.rechercher() marche et pas celle que je viens de creer.

    En fait je reprend un projet qui a déjà été crée par une autre personne, et comme je débute en JSF, j'ai beaucoup de mal à m'y prendre

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    rendered prend en paramètre un attribut et pas une méthode, le code de la méthode ajoute le dans le getter de l'attribut.

    et juste à titre informatif, il vaut mieux respecter le nommage java pour la lisibilité du code

    au lieu de ..

    ça me rappel un projet ça .. les CRA..

  11. #11
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ça me rappel un projet ça .. les CRA..
    Ah, faut dire que le projet CRA, c'est un peu un projet bateau pour apprendre une techno. Je l'utilise par exemple quand je donne des formations JSF...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  12. #12
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Voila le nouveau problème:
    Mon bouton il a disparu

    Voila un petit boue de code de ma JSF:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <table width="100%" class="titre_formulaire" cellspacing="0" cellpadding="0">
    <tr>
    <td width="20">
    <h:outputLink value="pdf_detail_cra_gen" rendered="#{collaborateur_recherche.test_cra_gen}" title="Télécharger la fiche synthèse contrat">
    <img src="resources/image/pdf.gif" border="0">
    </h:outputLink>
    </td>
    <td>
    		    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        Générateur de CRA
    </td>
    </tr>
    </table>
    Il s'affichait bien avant que je ne rajoute le rendered...
    PS: C'est vrai que les CRA ne sont jolie que sur la fiche de paye lol

  13. #13
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ton boolean doit être à false..

  14. #14
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Oui tout à fait, mais je veux pas que mon bouton soit touché par ça, comment faire pour qu'il soit toujours visible??

  15. #15
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    si tu veux qu'il soit afficher mais pas actif utilise disable au lieu de rendered.

  16. #16
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par skudersky Voir le message
    Oui tout à fait, mais je veux pas que mon bouton soit touché par ça, comment faire pour qu'il soit toujours visible??
    Si tu veux qu'il soit toujours visible, tu supprimes l'attribut rendered...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  17. #17
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Merci pour ta réponse,

    Seulement quand je remplace rendered par disable j'ai l'erreur suivante:

    org.apache.jasper.JasperException: /collaborateur_recherche.jsp(85,16) Attribute disable invalid for tag outputLink according to TLD

    PS: Je veux tout de même garder le rendered puisque ca me permet de faire le test avant le téléchargement du PDF

  18. #18
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Comme l'indique la "javadoc" du outputLink, l'attribut à utiliser est disabled, et non disable...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. [VBA] Comment utiliser Access avec Excel
    Par MxPx_23 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/02/2006, 13h00
  2. Comment utiliser Word avec Delphi 7 ?
    Par muquet dans le forum Débuter
    Réponses: 9
    Dernier message: 06/12/2005, 19h52
  3. Comment utiliser ShellExecute avec un programme DOS ?
    Par RC10GT_MGT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 22/09/2005, 15h23
  4. Comment utiliser AddItem avec un TComboBox ?
    Par richard038 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 01/08/2005, 18h58
  5. Réponses: 12
    Dernier message: 02/02/2004, 14h41

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