Mon probleme est le suivant :
j ai un objet qui contient une collection dont j affiche les items a l aide d un dataTable. Chacun de ces items contient une collection dont j affiche egalement les items a l aide d un dataTable. Mais voila j aimerai executer des methodes de sauvegarde, suppression, et edition sur chacun de ces items. Comment faire ?
J ai lu qu il était possible d appeler directement des methodes sur ces items a cette adresse :
http://turbomanage.wordpress.com/200...n-a-datatable/
Mais j obtient : "#{renderer.saveRenderer}: javax.faces.el.MethodNotFoundException: saveRenderer"
Voici le code de la jsp en question :
<h:dataTable id="layers"
styleClass="list-background" value="#{layerList.layers}" var="layer">
<h:column>
<h:graphicImage url="./images/galigeo/new_ana.gif"
onclick="openJsp('rendererassistant.jsf?layer=#{layer.name}')"
alt="#{msg.new_renderer}" />
<h:outputText value="#{layer.aliasName}" style="padding-left:5px;" />
<h:dataTable id="layers" styleClass="list-background"
value="#{layer.renderers}" var="renderer" style="left:20px">
<h:column>
<h:commandLink action="#{renderer.saveRenderer}">
<h:graphicImage url="./images/galigeo/save_2.gif"
alt="#{msg.save}" />
</h:commandLink>
</h:column>
<h:column>
<h:graphicImage url="./images/galigeo/sup.gif" onclick=""
alt="#{msg.delete}" />
</h:column>
<h:column>
<h:graphicImage url="./images/galigeo/iconCategManage.gif"
onclick="" alt="#{msg.edit}" />
</h:column>
<h:column>
<h:outputText value="#{renderer.label}" />
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
J ai aussi essaye cette méthode qui consiste à mettre un binding sur la dataTable :
http://balusc.xs4all.nl/srv/dev-jep-dat.html
Mais j obtient : "Error setting property 'myDataTable' in bean of type null"
Voici le code de la jsp en question :
<h:dataTable id="layers"
styleClass="list-background" value="#{layerList.layers}" var="layer">
<h:column>
<h:graphicImage url="./images/galigeo/new_ana.gif"
onclick="openJsp('rendererassistant.jsf?layer=#{layer.name}')"
alt="#{msg.new_renderer}" />
<h:outputText value="#{layer.aliasName}" style="padding-left:5px;" />
<h:dataTable id="layers" styleClass="list-background"
value="#{layer.renderers}" var="renderer" binding="#{layer.myDataTable}" style="left:20px">
<h:column>
<h:commandLink action="#{layer.saveRenderer}">
<h:graphicImage url="./images/galigeo/save_2.gif"
alt="#{msg.save}" />
</h:commandLink>
</h:column>
<h:column>
<h:graphicImage url="./images/galigeo/sup.gif" onclick=""
alt="#{msg.delete}" />
</h:column>
<h:column>
<h:graphicImage url="./images/galigeo/iconCategManage.gif"
onclick="" alt="#{msg.edit}" />
</h:column>
<h:column>
<h:outputText value="#{renderer.label}" />
</h:column>
</h:dataTable>
Je peux me passer de la premiere methode mais j ai absolument besoin de la deuxieme.
Partager