Dan*_*jel 2 jsf primefaces jsf-2
我正在为我的Web UI项目使用PrimeFaces UI库.
我有一个manage_watchfolder.xhtml
有按钮的页面,这个按钮启动一个对话框:
<p:commandButton value="Add" oncomplete="dlgEditWF.show()"
update=":editWFForm" process="@none"/>
Run Code Online (Sandbox Code Playgroud)
在这个相同的文件中我dlgEditWF
包括edit_watchfolder.xhtml
:
<p:dialog id="editDialog" widgetVar="dlgEditWF" modal="true"
resizable="true" onShow="showHideActionLocation();">
<ui:include src="edit/edit_watchfolder.xhtml"/>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
问题是,我不希望edit_watchfolder.xhtml
被加载单击该按钮之前.但是,edit_watchfolder.xhtml
在manage_watchfolder.xhtml
创建的同一时刻"加载" .因此,所有调用的bean edit_watchfolder.xhtml
都被创建,初始化等,甚至用户也许永远不会真正点击按钮.这会产生大量开销,并使执行变慢.
我可以避免这个吗?
这是"按设计"出于此答案中解释的原因:当未呈现父UI组件时跳过执行<ui:include>.
在您的特定情况下,最好的办法是默认情况下保持bean未初始化,并在命令按钮的操作方法中执行初始化.
<p:commandButton value="Add" action="#{bean.initDialog}"
process="@this" update=":editWFForm" oncomplete="dlgEditWF.show()" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12845 次 |
最近记录: |