Jsf 未在primefaces对话框中调用通过f:setPropertyActionListener的属性集的Getter
我有一个按钮,它将属性设置为要在Primefaces对话框中使用的支持beanJsf 未在primefaces对话框中调用通过f:setPropertyActionListener的属性集的Getter,jsf,primefaces,Jsf,Primefaces,我有一个按钮,它将属性设置为要在Primefaces对话框中使用的支持bean p:commandButton value="Options" onclick="optionsDialog.show();"> `<f:setPropertyActionListener value="#{item}" target="#{bean.tempItem}" /> </p:commandButton> p:commandButton value=“Options”oncl
p:commandButton value="Options" onclick="optionsDialog.show();">
`<f:setPropertyActionListener value="#{item}" target="#{bean.tempItem}" />
</p:commandButton>
p:commandButton value=“Options”onclick=“optionsDialog.show();”>
`
我可以看到这里叫塞特
<p:dialog header="Options" widgetVar="OptionsDialog" dynamic="true" modal="true"
width="400" height="250">
<h:outputText value="#{bean.tempItem.value}"/>
</p:dialog>
在这里,永远不会调用getter。这是因为对话框的内容在显示之前没有更新。您需要通过命令按钮的
update
属性来更新它。在此处引用对话框的(相对)客户端ID。您还需要将onclick
替换为oncomplete
,因为onclick
在执行操作之前激发,而oncomplete
在执行操作之后激发
<p:commandButton ... update="dialogId" oncomplete="optionsDialog.show();">
...
<p:dialog id="dialogId" ...>
...
顺便说一下,对话框小部件名称中还有一个小写/大写输入错误。但这会导致对话框根本不显示,这是另一个问题。它正在工作,但我们的按钮位于数据表中。这些按钮适用于数据表中的每一行。当我第一次点击时,它工作正常。关闭对话框后,它不会再次显示。哪个版本?在3.0 Beta和早期版本中,对话框很麻烦。只有从3.0.1开始,一切正常。嗯,尝试删除
dynamic=“true”
。