我无法显示p:dialog
p:inputText
组件的预填充值:
<p:dialog modal="true" widgetVar="editPersonDlg" header="Edit Person" width="350">
<h:form id="editPersonForm">
<h:panelGrid columns="2">
<h:outputLabel for="editFirstName" value="First Name:" />
<p:inputText id="editFirstName" value="#{personBean.selectedPerson.firstName}" />
<p:commandButton value="Save" type="Button" actionListener="#{personBean.edit}"
oncomplete="editPersonDlg.hide()"/>
<p:commandButton value="Cancel" type="Button" oncomplete="editPersonDlg.hide()"/>
</h:panelGrid>
</h:form>
</p:dialog>
调试时,我发现personBean#selectedPerson
实际上正在返回一个非空的Person,其名称为非null。 Person#getFirstName
实际上返回了一个非空名称。但是,FirstName和LastName不会出现在Dialog的inputText框中。
答案 0 :(得分:2)
可能是因为您在打开对话框之前没有更新对话框。 例如: 通过在p:dataTable中选择personBean.selectedPerson来初始化它,然后通过单击p:commandButton打开“编辑”对话框来编辑它。您必须更新此对话框,以便组件可以获取实际数据。尝试这样的按钮打开对话框:
<p:commandButton value="Edit" oncolmplete="editPersonDlg.show()" update=":formInWhichIsDialog:dialogID" />
让我知道它是否有效,问题可以在其他地方,但这是最常见的事情。 希望它有所帮助!