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:

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>
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.

Voilà les premières lignes de la trace Java:
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)
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

Merci d'avance.