2

あるページから別のページに移動したい、たとえば from page1with withbean1page2bean2ます。bean1からにいくつかのパラメーターを渡す必要がありますbean2

@ManagedPropertyfor parameters と<f:viewParam>in <f:metadata>part of の使用方法を理解したいと思いますpage2。たとえば、ゲッターとセッターで と をfield1使用field2できfield3ます。私の理解では、次のメタデータでビュー パラメーターを定義する必要があります。bean1bean2page2

お気に入り

<f:metadata>
    <f:viewParam name="field1" value="#{bean2.field1}"/>
    <f:viewParam name="field2" value="#{bean2.field2}"/>
    <f:viewParam name="field3" value="#{bean2.field3}"/>
</f:metadata> 

@ManagedPropertyパラメータfield1field2and field3bean1またはを定義するために注釈を使用する場所がわかりませんbean2

page1は使用することができます"page2?faces-redirect=true&amp;includeViewParams=true"

コマンドリンクの送信への応答など、の代わりにメソッドの1つで同じものを使用できますpage1か?

page1これら 3 つのフィールドが と の両方に必要な場合page2、これらの隠しフィールドを定義できますか?

4

1 に答える 1

4

のよう<f:param>に指定する必要があります。<h:link>page1.xhtml

<h:link value="Go to page2" outcome="page2">
    <f:param name="field1" value="#{bean1.field1}" />
    <f:param name="field2" value="#{bean1.field2}" />
    <f:param name="field3" value="#{bean1.field3}" />
</h:link>

次に、を使用して<f:viewParam>(または@ManagedProperty、これにより、より細かい検証が可能になります)、それらを の Bean に設定できますpage2.xhtml

<f:metadata>
    <f:viewParam name="field1" value="#{bean2.field1}" />
    <f:viewParam name="field2" value="#{bean2.field2}" />
    <f:viewParam name="field3" value="#{bean2.field3}" />
</f:metadata>

<h:commandLink>with faces-redirectand includeViewParamhereでPOST リクエストを送信する必要はありません。シンプルな GET リクエスト<h:link>は、はるかにシンプルで SEO フレンドリーです。

以下も参照してください。

于 2012-03-20T02:17:57.317 に答える