Pessoal, estava fazendo uma aplicação web de exemplo, uma agenda, quando me deparo com um pequeno problema.
Quando eu criava a lista de contatos, tinha um botão ao lado para deletar aquele contato em questão:
[code]<h:dataTable var=“contato”
value="#{AtualizarFormulario.listaDeContatos}">
<h:column>
<f:facet name=“header”>
<h:outputText value=“ID”></h:outputText>
</f:facet>
<h:outputText value="#{contato.id}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOME"></h:outputText>
</f:facet>
<h:outputText value="#{contato.nome}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="TELEFONE"></h:outputText>
</f:facet>
<h:outputText value="#{contato.telefone}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="EMAIL"></h:outputText>
</f:facet>
<h:outputText value="#{contato.email}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="DELETAR"></h:outputText>
</f:facet>
<h:commandButton value="Deletar"
actionListener="#{AtualizarFormulario.deletarContatoSelecionado}"
>
<f:setPropertyActionListener value="#{contato.id}"
target="#{AtualizarFormulario.usuDelete}"></f:setPropertyActionListener>
</h:commandButton>
</h:column>
</h:dataTable>[/code]
Desta forma que eu fiz, ele não passava pelo set do “usuDelete” (que é o id do contato a ser deletado). Ele ia direto ao método.
Quando eu colocava isso:
<h:commandButton value="Deletar" action="#{AtualizarFormulario.deletarContatoSelecionado}">
<f:setPropertyActionListener value="#{contato.id}"
target="#{AtualizarFormulario.usuDelete}"></f:setPropertyActionListener>
</h:commandButton>
Ele conseguia setar o usuDelete antes de ir ao método, eu ainda não entendi qual a diferença entre os dois, alguém podería me explicar por que existe essa diferença?
Obrigado.