0

私は JSF2 を使用しており、commandLink を介してある JSF ページから別の JSF ページにパラメーターを渡すことができる必要があります。

私はページfunding.xhtml(ViewScoped) にいて、次のリンクが定義されています。

<p:commandLink styleClass="toolbar" 
               action="/application/customerApplicationManagement.jsf">
    <p:graphicImage url="/resources/gfx/search.png" />
    <h:outputText value="#{msg.menu_searchApplications}" styleClass="toolbarLink" />
</p:commandLink>

アプリケーションを選択した後にそのページに戻ることができるように、どのページから来たかを示す文字列値を customerApplicationManagement ページに渡す必要があります。f:param、 など、この値を渡す方法についていくつかの提案を試みましf:viewParamた。URL()などに直接追加することさえ試みました?fromPage=fundingが、それらはすべて、ナビゲートしている新しいページではなく、現在のページに値が返された場合にのみ機能するようです。

誰かがこれを最もよく達成する方法を教えてもらえますか?

4

2 に答える 2

2

とを使用<f:param><f:viewParam>ます。

ソースページ:

<p:commandLink styleClass="toolbar" 
           action="/application/customerApplicationManagement.jsf">
    <p:graphicImage url="/resources/gfx/search.png" />
    <h:outputText value="#{msg.menu_searchApplications}" styleClass="toolbarLink" />
    <f:param name="fromPage" value="funding.xhtml" />
</p:commandLink>

宛先ページ (製本):

<f:metadata>
    <f:viewParam name="fromPage" value="#{destinationBacking.fromPage}" />
</f:metadata />

<h:link value="Go back!" outcome="#{destinationBacking.fromPage}" />

宛先ページ (非バインド):

<f:metadata>
    <f:viewParam name="fromPage" />
</f:metadata />

<h:link value="Go back!" outcome="fromPage" />

バッキング Bean (パラメーターをバインドする場合のみ):

@ManagedBean
@ViewScoped
public class DestinationBacking{
    String fromPage;

    public String getFromPage(){
        return fromPage;
    }

    public void setFromPage(String frompage){
        fromPage = frompage;
    }
}

ビュー パスはfromPage、宛先バッキング Bean からプロパティにバインドされ、それを使用して元のページに戻ることができます。

また、この方法はエンドユーザーが少し「ハッキング可能」であると言いたいです。つまり、純粋なURLを介して元のパスを渡しているということです。これを実現する他の方法も参照してください。これは、 Beanを使用している場合に特に便利です@ViewScoped

于 2013-03-15T17:50:00.240 に答える
0

目標を達成しようとしたメソッドの詳細がわからないため、何が問題だったのかわかりませんが、コードを「そのまま」と見なすと、必要な文字列を渡すものは何もありません.

繰り返しませんが、この方法またはその方法の使用に特化した回答がここにたくさんあるので、もちろん、私の意見では最高の参考文献を紹介します.

  1. パラメータを datatable 内の commandlink に渡すにはどうすればよいですか
  2. ViewParam 対 @ManagedProperty ;
  3. <f:metadata><f:viewParam>使用できるか。

JSF での戻るボタンの使用については、How to get back to the same page in JSFに関する私自身の回答もご覧ください。

ところで、ページ間のナビゲーションに POST を使用することは、悪い習慣と見なされています。別のページに移動することだけが必要な場合は、プレーン<h:link>または<h:button>代わりに使用することをお勧めします。

于 2013-03-15T17:27:46.907 に答える