Prime Faces (JSF UI ライブラリ) を使用しています。
commandLink
それぞれがダイアログを表示するいくつかのボタンがあるページがあります。
<f:view>
<h:form>
.
.
.
<p:dataTable value="#{ServerMgmtBean.objectList}" var="server">
.
.
.
<p:commandLink oncomplete="dlgAssignServers.show()">
<p:graphicImage alt="Assign Image" value="./images/assign.png" />
</p:commandLink>
.
.
.
</h:form>
<p:dialog id="assignServersDialog" header="Assign Servers" widgetVar="dlgAssignServers" modal="true" width="400">
<ui:include src="assign/assign_sg_servers.xhtml"/>
</p:dialog>
</f:view>
問題は、をクリックするたびにcommmandLink
、ページの背後にあるすべての Bean が再作成され (この例でServerMgmtBean
は )、ダイアログが起動されることです。すべての Bean はリクエスト スコープです。
ダイアログが表示される前に進行状況インジケーターが必要になるまで、処理が大幅に遅くなります。Bean が初期化されるのはなぜですか? どうにかしてこれを回避することはできますか?