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.
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.
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 !Envoyé par dzafer
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 ?
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.
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 ?
Merci beaucoup dzafer pour ta réponse !
Facelet peut-il s'intégrer facilement dans le visual web pack de Netbeans 5.5 ?
Ultra facile, voici le plug-in:
https://nbfaceletssupport.dev.java.net/features.html
Plusieurs solutions sont en effet possible.Envoyé par lieto
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
Merci pour ta réponse ! C'est un bon topic récapitulatif !
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...![]()
Encapsule ta Collection dans un DataModel et puis tu y accède via getRowData();
Alex
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()"
Voilà, j'espère que cette petite mise à jour sera utile.
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"; }![]()
Partager