<p:dialog>的渲染属性和可见属性之间的差异

Nik*_*hil 17 jsf primefaces

我在我的项目中使用PrimeFaces 3.2.我想知道设置a的渲染属性<p:dialog>与设置visible属性之间的区别.我应该何时使用这些属性中的任何一个?

Bal*_*usC 31

rendered属性是服务器端,visible属性是客户端.该rendered属性告诉JSF是否应该生成对话框的HTML表示.该visible属性告诉HTML/CSS/JS是否应该立即在浏览器页面加载时显示对话框.

如果没有呈现对话框,那么您将无法通过例如JavaScript显示它dialogWidgetVar.show()而无需重新加载页面或ajax更新对话框的父组件之一,以便对话框的rendered条件评估为true.visible如果没有简单地渲染对话框,则该属性也不会产生任何影响,因为没有任何东西被渲染到可以由JavaScript显示/隐藏的结果HTML输出.

如果呈现对话框,则默认情况下隐藏该对话框.您可以设置visibletrue强制它在打开页面时立即显示对话框.或者您可以dialogWidgetVar.show()在某些onclickoncomplete属性中调用JavaScript 来显示它.

rendered如果您根本不想渲染对话框,请使用该属性,例如,因为它无论如何都不会在当前请求的页面组合中使用.