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 et getAttribute


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut jsf et getAttribute
    Bonjour,

    Je dispose d'un bean qui me permet de récupérer une collection d'élément afin de remplir une datatable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public Collection getToDoS() {
            if (toDos == null) {
                try {
                    log.debug("#DDD############ toDos null --> service.getToDos");
                    toDos = toDoService.getToDoS();
                } catch (Exception e) {
                    log.error("#DDD############ Error when searching the todo list");
                }
            }
            return toDos;
        }
    Cela fonction parfaitement, mais maintenant, je voudrait pouvoir récupérer cette collection dans ma jsp avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getAttribute("ma_liste_de_todos", toDos);
    Est-ce possible (je suppose que oui...), mais surtout comment m'y prendre !?!?!

    Merci d'avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Quel est le but recherché exactement ?

  3. #3
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    le but est d'essayer d'integrer un composant du genre "displaytag" ou "extremComponents" dans ma page jsf.

    Ce genre de composant marche de la sorte :
    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
     
    <% java.util.List presidents = new java.util.ArrayList(); %>
     
    <% java.util.Map president = new java.util.HashMap(); %>
    <% president.put("name", "George Washington"); %>
    <% president.put("nickname", "Father of His Country"); %>
    <% president.put("term", "1789-1797"); %>
    <% presidents.add(president); %>
     
    <% request.setAttribute("pres", presidents); %>
     
    <body>
    	<ec:table 
    		items="pres"
    		action="${pageContext.request.contextPath}/extremeComponents.jsp"
    		imagePath="${pageContext.request.contextPath}/images/table/*.gif"
    		title="Presidents"
    		width="60%"
    		rowsDisplayed="5"
    		>
    		<ec:row>
    			<ec:column property="name"/>
    			<ec:column property="nickname"/>
    			<ec:column property="term"/>
    		</ec:row>
    	</ec:table>
    </body>
    Il me faut donc un moyen de récupérer la liste provenant de mon bean sous cette forme afin quelle soit compatible avec l'un de ces composants...

    En esperant avoir été assez clair

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Mélanger JSP et JSF pas terrible...
    Pourquoi tu ne passe pas par un managed bean
    Qui contient ta liste de président ??

    T'y aurai accès avec l'EL

  5. #5
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Mélanger JSP et JSF pas terrible...
    Je sais bien, mais c'est la seule solution que j'ai trouvé... Je suis ouvert à tout autre solution. Etant donnée que j'ai des incompatibilités de librairie quand je veux utiliser le tri et la pagination de myfaces et que je n'est pas le droit de créer mes propres composants, je me rabat donc sur des solutions existantes...même si c'est po très propre...

    Pourquoi tu ne passe pas par un managed bean
    J'vais p'têtre paraitre inculte, mais c'est quoi la différence entre un managed bean et le bean que j'utilise actuellement ????

    Qui contient ta liste de président ??
    Le truc du président, c'etait juste un exemple... ce qui m'interesse dans cette exemple, c'est juste de pouvoir faire un "getAttribute" pour récupérer une collection d'objet issus de mon bean...

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Les managed beans c'est un peu la Base de JSF
    Tu met tes données dedans, et tu lies tes pages aux données contenues dans ces beans via l'EL, ainsi tu peux faire :


    <h:outputText value="#{bean.uneString}>

    Les données ne sont plus dans les JSP

    Je ne sais pas si c'est la réponse à ton problème (je ne connais pas extremComponents), mais faire du JSF sans savoir ce qu'est un managed bean me parait impossible...

    je te conseille de jeter un coup d'oeil sur ce topic :

    http://www.developpez.net/forums/sho...d.php?t=361645

  7. #7
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    En fait, ce qui me manque c'est surtout le vocabulaire...
    Pour moi managed bean = bean = backed bean...
    Ma datatable se rempli tres bien avec mon managed bean, ce que je recherche, c'est une solution alternative à myfaces pour faire du tri et de la pagination !

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tu l'implémente à la main... En décorant un dataModel tu dois pouvoir faire ça.
    Il y a un exemple dans le livre Core JSF (voir le topic sur la documentation)

  9. #9
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Pas le droit de faire du tri et de la pagination perso... bigBoss à dis non !

    Mais je reviens un peu au point de départ : comment pouvoir attaquer "Request" du context courant dant mon bean?

  10. #10
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Voici la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpServletRequest req =  (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
    req.setAttribute("todos", ma_collection_de_toDos);
    Ce code est placé dans mon bean

  11. #11
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Mais maintenant, comment faire dans ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getAttribute( "todos" );
    sachant que les balises "<% %>" ne fonctionne pas...
    Ni d'ailleur : "<jsp:scriptlet></jsp:scriptlet>"
    La premiere balise ok, mais la seconde pourquoi?

  12. #12
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Je vois pas l'intérêt de mettre un truc dans le request pour le récupérer 5 minutes après...

    Il y a vraiment un truc qui m'échape...

  13. #13
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    le but est d'essayer d'integrer un composant du genre "displaytag" ou "extremComponents" dans ma page jsf.

    Ce genre de composant marche de la sorte :
    Code :
    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
     
    <% java.util.List presidents = new java.util.ArrayList(); %>
     
    <% java.util.Map president = new java.util.HashMap(); %>
    <% president.put("name", "George Washington"); %>
    <% president.put("nickname", "Father of His Country"); %>
    <% president.put("term", "1789-1797"); %>
    <% presidents.add(president); %>
     
    <% request.setAttribute("pres", presidents); %>
     
    <body>
    	<ec:table 
    		items="pres"
    		action="${pageContext.request.contextPath}/extremeComponents.jsp"
    		imagePath="${pageContext.request.contextPath}/images/table/*.gif"
    		title="Presidents"
    		width="60%"
    		rowsDisplayed="5"
    		>
    		<ec:row>
    			<ec:column property="name"/>
    			<ec:column property="nickname"/>
    			<ec:column property="term"/>
    		</ec:row>
    	</ec:table>
    </body>
    A l'exception pres que la list est créé dans mon bean... il me faut donc un moyen de recupérer un attribut de requete dans ma jsp pour remplir ma table...

  14. #14
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Après une petite recherche sur ExtremComponents
    Il s'agit de tags JSP et non JSF donc a mon avis :


    --> Trinidad
    --> Tomahawk
    --> Tobago...


    Bref des composants JSF

    =>http://www.jsfmatrix.net/

  15. #15
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    he he, j'suis bien d'accord avec toi, le problème c'est que j'ai un chef vraiment casse bombon qui veut absolutment que j'utilise displayTag (ce qui l'interesse c'est que la pagination est gérer dans la base de donnée), toute les autres solutions que je lui est proposé sont partit directement à la poubelle
    Du coup, ca fait 8 jour que je me prend la tete sur ce problème de tri & pagination qui aurait pu être résolu il y'a bien longtemps.... Vive la perte de temps

    En tout cas merci pour ton lien, je connaissais pas... C'est vraiment pratique et bon à avoir sous la main !!!

  16. #16
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Désolé d'avoir mal compris ton message au départ.

    Je ne peux pas t'aider plus étant donné que je ne connais pas displayTag et ExtremComponents.

    Ton patron doit vraiment avoir un problème en quelque part...

    Bon courage à toi.

  17. #17
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Afin de répondre à ce post, voila comment faire un getAttibute :

    <jsp:scriptlet>
    session.getAttribute( "ma_var" );
    ou
    request.setAttribute( "toto", ma_var );
    </jsp:scriptlet>

    Attention toutefois ! cette solution ne fonctionne pas si vous utilisez facelets

    Dès que j'en saurais plus sur l'utilisation des scripts jsp avec facelets, j'indiquerai la solution sur le post suivant :
    http://www.developpez.net/forums/sho...d.php?t=372476

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

Discussions similaires

  1. JSF vs Struts
    Par peuh dans le forum JSF
    Réponses: 22
    Dernier message: 06/04/2013, 22h49
  2. Réponses: 1
    Dernier message: 26/08/2004, 16h23
  3. [ JSF ][ Struts ] Intégration JSF et Struts
    Par tiSioux dans le forum JSF
    Réponses: 10
    Dernier message: 26/07/2004, 11h10
  4. [Plugin]Plugin JSF pour eclipe
    Par yanis97 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/07/2004, 14h50
  5. [JSP][Servlet] getAttribute et getParameter
    Par Kimael dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 09/06/2004, 16h35

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