PF 3.5.10、モハラ 2.1.21、オムニフェイス 1.5
.xhtml JSF ページをロードする前に、(CDI)SessionScoped Bean の特別な init() メソッドを呼び出す方法は? ユーザーがサイトメニューからページを選択した場合は、 init() を呼び出します ( を使用p:menutitem
)。しかし、ユーザーがブラウザのアドレス行を使用して url を直接入力した場合はどうすればよいでしょうか?
編集: my.xhtml
:
<ui:define template="/mytemp.xhtml">
<f:event type="preRenderView" listener="#{mybean.init()}" />
<h:form>
<p:commandButton update="@form" ... />
</h:form>
</ui:define>
そのようにすると、コマンドボタンをクリックするたびに、更新ごとに(つまり、サーバーへのポストバックごとに)init()が呼び出されます。したがって、私はあなたの提案を使用できません。
編集 2: Luiggi Mendoza と BalusC に感謝します! Luiggi Mendoza のソリューションに加えて、コメントにあるように、Omnifaces 1.6 には ViewScope も含まれます。