f: setPropertyActionListener não invocado
Estou tentando mover ump:dialog
fora de umh:form
, porque eu li que este é o caminho preferido (no entanto, eu gostaria de entender a razão, porque o meup:dialog
dentro de umform
funciona bem na minha aplicação).
A única dificuldade é que o título da caixa de diálogo precisa ser atualizado dinamicamente. A caixa de diálogo é exibida quando um botão em ump:dataTable
é clicado.
Aqui está o meu antigo xhtml (antes das mudanças), está funcionando bem:
<p:dataTable var="event" value="#{eventBean.lazyModel}" selection="#{eventBean.selectedEvent}" />
...
<p:column headerText="#{msgs.Persons}">
<p:commandButton value="#{msgs.ViewPersons}" update=":viewPersonsForm" oncomplete="viewPersonsDlg.show()">
<f:setPropertyActionListener value="#{event}" target="#{eventBean.selectedEvent}" />
</p:commandButton>
</p:column>
</p:dataTable>
<h:form id="viewPersonsForm">
<p:dialog modal="true" widgetVar="viewPersonsDlg" dynamic="true" header="#{eventBean.selectedEvent.name}" >
...
</p:dialog>
</h:form>
E aqui está o novo xhtml, com eventBean # setSelectedEvent () que não é invocado.
<p:dataTable var="event" value="#{eventBean.lazyModel}" selection="#{eventBean.selectedEvent}" />
...
<p:column headerText="#{msgs.Persons}">
<p:commandButton value="#{msgs.ViewPersons}" update=":viewPersonsDlgId" oncomplete="jQuery('#viewPersonsDlgId .ui-dialog-title').text('#{eventBean.selectedEvent.name}');viewPersonsDlg.show()">
<f:setPropertyActionListener value="#{event}" target="#{eventBean.selectedEvent}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog modal="true" id="viewPersonsDlgId" widgetVar="viewPersonsDlg" dynamic="true" >
...
</p:dialog>
Então, novamente, porque no segundo cenário o eventBean # setSelectedEvent () não é invocado? E, se possível, porque o primeiro cenário não é o ideal?