xandi_m5:
Alguém pode fala para que serve isso?
assignTo="#{carsBean.currentCarIndex}
ps: isso tem no codigo do link mais…:
<a4j:commandLink styleClass="no-decor" render="editGrid"
execute="@this" oncomplete="#{rich:component('editPane')}.show()">
<h:graphicImage value="/images/icons/edit.gif" alt="edit"/>
<a4j:param value="#{it.index}"
assignTo="#{carsBean.currentCarIndex}" />
<f:setPropertyActionListener target="#{carsBean.editedCar}"
value="#{car}" />
</a4j:commandLink>
Mano esse link está sendo usado para enviar parametros ao managed-bean, de forma que a aplicação saiba qual linha foi clicada. A linha que voce questionou
<a4j:param value="#{it.index}"
assignTo="#{carsBean.currentCarIndex}" />
Essa tag (a4j:param) serve para, via Ajax, passar parametros para o servidor. Esse link existe para cada linha da tabela, correto? Pois bem, no momento do click, será enviado ao servidor o valor de “#{it.index}” para a propriedade “#{carsBean.currentCarIndex}”. No managed-bean dele certamente existe um metodo “setCurrentCarIndex()” para receber e armazenar o valor.
Da mesma forma funciona essa tag
<f:setPropertyActionListener target="#{carsBean.editedCar}"
value="#{car}" />
A diferença é que aqui está sendo enviado o objeto “#{car}” inteiro, esse objeto é o cara utilizado para preencher cada linha da tabela (não estou vendo o codigo do exemplo aqui mas imagino que a propriedade “var” do datatable está definida como “car”, correto?). Da mesma forma, no managed-bean certamente existe um “setEditedCar”, dessa forma é possível saber qual foi o item clicado.
Espero que nao tenha ficado confuso :lol: . Mais duvidas poste ai…