フローを定義しました:
<flow-definition id="locking">
<view id="locking">
<vdl-document>/views/locking/locking.xhtml</vdl-document>
</view>
<view id="summary">
<vdl-document>/views/locking/locking-summary.xhtml</vdl-document>
</view>
<inbound-parameter>
<name>targetId</name>
<value>#{lockingBean.targetId}</value>
</inbound-parameter>
<flow-return id="exit">
<from-outcome>#{lockingBean.getExitNode()}</from-outcome>
</flow-return>
<initializer>#{lockingBean.initializeBean()}</initializer>
<finalizer>#{lockingBean.finalizeBean()}</finalizer>
</flow-definition>
ご覧のとおり、受信パラメーターがあります<initialize>
。タグで渡されたメソッドで適切な初期化が必要です。問題は、初期化メソッド中にその値にアクセスすることlockingBean.initializeBean()
です。実行中のパラメーターtargetId
は null です。ビューではその値をテキストとして配置しているため、正しく渡されます。つまり、渡されたメソッド<initialize>
が実行され、その後、受信パラメーターが Bean に渡されます。私の意見では、この順序は正しくありません。
この順序を変更することは可能ですか、それともきれいな方法はありますか?
この時点では、初期化メソッドで何もしていません。すべての初期化は一時的に別のメソッドに移動され、ビュー ファイルから呼び出され、パネル グループにレンダラーが設定されます。それはすべてうまくいきますが、この解決策は正しいとは言えません。