我想知道应该使用哪种方法来更新 Primefaces 中的对话框。 这两个实现等效吗?
第一种方法:在对话框中使用动态属性
<h:form>
<p:commandButton onclick="dialog.show();"/>
</h:form>
<p:dialog widgetVar="dialog" dynamic="true">
<h:form id="dialogForm">
<h:outputText value="#{bean.name}"/>
</h:form>
</p:dialog>
第二种方法:通过命令按钮手动更新对话框
<h:form>
<p:commandButton onclick="dialog.show();" update="dialogForm"/>
</h:form>
<p:dialog id="dialog" widgetVar="dialog">
<h:form id="dialogForm">
<h:outputText value="#{bean.name}"/>
</h:form>
</p:dialog>
什么时候应该使用哪种方法?
最佳答案
如果对话框根本没有加载,两种方法都有相同的结果。 第一种方法尝试弹出对话框,但意识到内容尚未加载。因此将从相应的 bean 中获取内容。 第二种方法在从 bean 加载内容后打开对话框。
对话框至少打开一次后就会出现差异: 如果您第二次、第三次、第四次......第n次打开对话框,第一种方法只会弹出对话框,因为内容已经第一次加载。 第二种方法将确保对话框打开时内容始终是最新的。
关于java - Primefaces 对话框更新机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129652/