2

パラメータを別のページに渡そうとしています。画像のカテゴリがあり、そのリストはセッション スコープにあり、ヘッダー テンプレートでこのカテゴリごとにリンクが作成されます。

新しいページにリダイレクトして、選択したカテゴリを渡したいと思います。

<h:dataTable id="categoryMenu" value="#{menuBean.listCategory}" var="category">
    <h:column>
        <h:link value="#{category.name}"
     outcome="/image/imageList.xhtml" >
        </h:link>
    </h:column>
</h:dataTable>

しかし今、ImageListBean.java に関連付けられた私のページ imageList.xhtml が選択されたカテゴリを取得することを望みます。

f:param を使用して GET パラメータを要求することで多くのことを試しましたが、ImageListBean.java はビュー スコープである必要があるため、機能しません。

4

2 に答える 2

8

あなたのViewScoped豆は問題にならないはずです。このコードで:

<h:link value="#{category.name}" outcome="/image/imageList.xhtml">
  <f:param name="categoryName" value="#{category.name}"/>
</h:link>

これを使用して、バッキング Bean でこのパラメーターにアクセスできるはずです。

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("categoryName")
于 2013-01-23T20:00:33.637 に答える
2

imageList.xhtmlで viewParamを試しましたか?

<f:metadata>
    <f:viewParam name="id" value="#{bean.id}" />
</f:metadata>

基本的に次のことを行います。

  • 名前 id でリクエスト パラメータ値を取得します。
  • 必要に応じて変換して検証します (required、validator、converter 属性を使用して、 と のようにネストすることができます)
  • 変換と検証が成功したら、それを #{bean.id} で表される Bean プロパティとして設定します。

「id」パラメーターを取得したら、DB で検索するカテゴリを取得できます。

于 2013-01-23T20:02:17.633 に答える