3

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 も含まれます。

4

1 に答える 1