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 :

itération sous jsf


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut itération sous jsf
    Bonjour,
    est il possible de faire une boucle itérative sous jsf? Je souhaite effectué un outputText un certain nombre de fois, en fonction du contenu d une liste
    Comment faire?
    Merci d avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Par défaut
    Hello,

    Voici un exemple en JSTL:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    <ol>

    <c:forEach items="${reportHandler.currentReportEntries}" var="e">

    <li>Date: ${e.date}, Type: ${e.type}, Amount: ${e.amount}</li>

    </c:forEach>

    </ol>

  3. #3
    Membre confirmé Avatar de balmeyer
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Citation Envoyé par dzafer
    Hello,

    Voici un exemple en JSTL:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    <ol>

    <c:forEach items="${reportHandler.currentReportEntries}" var="e">

    <li>Date: ${e.date}, Type: ${e.type}, Amount: ${e.amount}</li>

    </c:forEach>

    </ol>
    Salut !
    Il me semble que c'est du JSP simple ce que tu notes ?

    La question de lieto est interessante : comment je fais avec JSF quand j'utilise, par exemple, Visual Web Pack sous Netbeans 5.5 ?

    Du style, je veux afficher un résultat d'une recherche dans une boucle ?

  4. #4
    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
    Il me semble qu'avec JSF 1.2, on peut utiliser les EL JSF(#) et JSTL($) ensemble.
    Sinon il me semble que c'est possible aussi avec facelet
    (A confirmer).

    Sinon si tu veux faire une itération tu peux utiliser une datatable.

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Par défaut
    Hello,

    Oui l'exemple ci-dessus,c'est bien la combinaison :JSTL+JSF.

    C'est aussi possible avec Facelets (dépend des cas) :

    exemple:

    productList.xhtml

    <ui:component
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets">

    <ui:repeat var="product" value="#{productBean.products}" >
    <ui:include src="./component/productDetails.xhtml">
    <ui:param name="product" value="#{product}"/>
    </ui:include>
    </ui:repeat>

    </ui:component>



    productDetails.xhtml:

    <ui:component
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets">

    <div>
    <h2><h:outputText value="#{product.name}" /></h2>
    <h:outputText value="#{product.description}" />
    </div>

    </ui:component>


    Sinon autre solution : ajouter les composant ADF:<af:forEach>

    Cela dépend de ce que tu as besoins de faire exactement : Il n'y pas moyen de créer un bean et de garder le h:dataTable ?

  6. #6
    Membre confirmé Avatar de balmeyer
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Merci beaucoup dzafer pour ta réponse !

    Facelet peut-il s'intégrer facilement dans le visual web pack de Netbeans 5.5 ?

  7. #7
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94

  8. #8
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Citation Envoyé par lieto
    Bonjour,
    est il possible de faire une boucle itérative sous jsf? Je souhaite effectué un outputText un certain nombre de fois, en fonction du contenu d une liste
    Comment faire?
    Merci d avance.
    Plusieurs solutions sont en effet possible.

    La version pure JSF avec les composants de la spécification est

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <f:view><h:form>
        <h:dataTable value="#{serviceBean.rootCatalogs}" var="cat">
        <h:column>
            <h:commandLink value="#{cat.label}" action="#{cat.listProducts}">
                <f:param name="id" id="catalogId" value="#{cat.id}"/>
            </h:commandLink>
        </h:column>
        </h:dataTable>
    </h:form></f:view>

    Sinon tu as plusieurs possibilité en utilisant le composant de Apache TomaHawk dataList

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <t:dataList value="#{catalogs.rootCatalogs}" var="cat">
        <h:commandLink ...

    Si tu veux utiliser les tags JSP (ou une partie en tout cas) et JSTL et que tu n'est pas dans un env. JEE 5, et donc sans Servlet 2.5, JSP 2.1 et JSF 1.2, il te reste Facelets qui te permets d'intégrer différentes taglibs, mais tas toutes et pas toujours complètement, mais fait bien plus!

    Alex

  9. #9
    Membre confirmé Avatar de balmeyer
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Merci pour ta réponse ! C'est un bon topic récapitulatif !

  10. #10
    Membre confirmé Avatar de balmeyer
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Ah, j'ai une toute petite question concernant les itérations : dans ma dataTable, j'ai un champs "action" (format :hyperLink ou Button). Quand l'action se déclenche, une méthode du style "button1_action" se déclenche, quelque soit le bouton.

    Comment savoir quel ligne, ou quel enregistrement est concernée ? J'ai perdu la trace du tutoriel où j'ai vu ça, sur developper.net...

  11. #11
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Encapsule ta Collection dans un DataModel et puis tu y accède via getRowData();
    Alex

  12. #12
    Membre confirmé Avatar de balmeyer
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    J'ai ma réponse définitive par rapport aux itérations dans les dataTable, avec visual web pack.

    La solution est simple, et se trouve dans un toturial envoyé il y a peu par netbeans.org

    lien : http://www.netbeans.org/kb/55/photoalbum.html

    Dans un dataTable, si on veut selectionner une ligne en particulier, on peut mettre dans une des colonnes un HyperLink ou un Button, et récupérer la ligne en question dans sa méthode "action" avec la méthode "getRowKey()"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public String viewAlbumButton_action() {
            // TODO: Process the button click action. Return value is a navigation
            // case name where null will return to the same page.
     
            RowKey rowKey = tableRowGroup1.getRowKey();
            getSessionBean1().setCurrentAlbumId((Integer) albumDataProvider.getValue("ALBUM.ALBUMID", rowKey));
            getSessionBean1().setCurrentAlbumName((String) albumDataProvider.getValue("ALBUM.NAME", rowKey));
            return "viewAlbum";
        }
    Voilà, j'espère que cette petite mise à jour sera utile.

Discussions similaires

  1. Itération dans JSF 2.1 ?
    Par swoop314 dans le forum JSF
    Réponses: 2
    Dernier message: 15/05/2012, 14h42
  2. f:paramView sous JSF 2 ne fonctione pas
    Par barzane dans le forum JSF
    Réponses: 2
    Dernier message: 18/11/2011, 08h09
  3. Réponses: 5
    Dernier message: 11/10/2011, 16h26
  4. calendar sous JSF
    Par psycho_xn dans le forum JSF
    Réponses: 5
    Dernier message: 26/08/2008, 13h33
  5. Comment faire des itérations avec JSF & richFaces?
    Par gettingway dans le forum JSF
    Réponses: 2
    Dernier message: 20/05/2008, 15h03

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