Bonjour,
Je souhaite générer une table, contenant un bouton radio sur chaque ligne. C'est un sujet très répandu mais mon problème est vraiment bizarre. J'utilise des composants Tomahawk, entre autres.
Voilà mon code:
Avec ce code, j'obtiens un NullPointerException sur l'attribut "index" du composant radio? Car si je remplace index="#{index}" par index="0", je n'ai pas d'erreur mais du coup tous mes boutons radios seront liés au même item de la liste. Si je mets #{index} dans un outputText, j'ai bien l'index de chaque ligne affiché correctement, sans erreur.
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
28
29 <to:selectOneRadio id="selectedList" forceId="true" forceIdIndex="false" layout="spread" value="#{bean.selectedList}" > <f:selectItems value="#{bean.listesSI}" /> </to:selectOneRadio> <to:dataTable headerClass="tableHeader" columnClasses="libelleCol,checkCol" value="#{bean.listes}" var="lst" rowIndexVar="index"> <h:column> <f:facet name="header"> <h:outputText value="" /> </f:facet> <h:outputText value="#{lst.libelle}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="" /> </f:facet> <to:radio for=":myForm:selectedList" index="#{index}" ></to:radio> </h:column> </to:dataTable>
Voilà les premières lignes de la trace Java:
Il semblerait que la balise index ne prenne pas en compte ma variable, et renseigne toujours NULL. Pourtant, un exemple est donné sur cette page: http://wiki.apache.org/myfaces/Displ...ons_In_Columns
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 java.lang.NullPointerException at com.sun.facelets.tag.TagAttribute.getInt(TagAttribute.java:100) at com.skalasoft.facelets.tags.IntegerMetadata.applyMetadata(IntegerMetadata.java:28) at com.sun.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:36) at com.sun.facelets.tag.MetaTagHandler.setAttributes(MetaTagHandler.java:62) at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:140) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:295) at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:165)
Merci d'avance.
Partager