dynamic
=true( dynamic - ajax を使用したコンテンツの遅延読み込みを有効にする)を持つ PrimeFaces ダイアログ内に JSF 複合コンポーネントがあります。コンポーネントは、オーバーライドされたencodeBegin
メソッド内で初期化されます。これは、ダイアログが表示されたときに発生します。
動的属性を削除すると、ダイアログが表示されていないときにも encodeBegin メソッドが呼び出され、既存のコードが壊れます。
ダイアログが表示されているときだけ複合コンポーネント コードを実行することはできますか?
コードの選択は次のとおりです。
<p:dialog id="actionsDialog"
widgetVar="actionsDialogWidget" resizable="false" width="800"
height="600" showEffect="fade" hideEffect="fade" modal="true">
<h:form id="confirmationWizardForm">
<acme:actionWizard name="wizard" widgetVar="wiz" bean="#{accountsBean}"
header="#{accountsBean.entityHeader}"
update="form:genericAccounts" onClose="actionsDialogWidget.hide()" />
</h:form>
</p:dialog>
...
<p:commandButton value="Add"
action="#{accountsBean.initializeEntity}" process="@this"
update=":actionsDialog" oncomplete="actionsDialogWidget.show()">