から私は、JSFとPrimefacesを使用していて、私の質問は:JSF ViewParamコマンドボタン
:文字列のリスト(スペース区切り)でビューのparamをrecive私はページ(page1.jsf)を持っている<f:metadata>
<f:viewParam name="list" value="#{bean1.list}" converter="listConverter"/>
</f:metadata>
listConverterは、文字列を個々の単語のリストに変換します。 URLを使ってページにアクセスすると(例:page1.jsf?list = word1 word2 word3)、すべて正常に動作します!
今は別のページ(page2.jsf)を使ってそのリストを作成しようとしています。私はこの例以下、PrimefaceのDataTableを使用してい 用語の:http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf可能tomake私が欲しい
をユーザーに複数の行(チェックボックスPrimeface例)を選択し、page1.jsfにリダイレクトされますボタンを押すと、また、選択された項目のリストをパラメータとして渡します(たとえば、Primefaceショーケースの例を使用して、選択した車種のリストを渡します)。
私はしようとしています彼:
<p:commandButton action="page1?faces-redirect=true&includeViewParams=true" >
<f:attribute name="list" value="#{bean2.convertSelectedItemsToString()}" />
</p:commandButton>
またはこの:
bean2はselectedItemsの[]オブジェクトを選択した<p:commandButton action="page1?faces-redirect=true&includeViewParams=true" >
<f:param name="list" value="#{bean2.convertSelectedItemsToString()}" />
</p:commandButton>
。
言うまでもなく...動作しません。
助けが必要ですか? ありがとうございます。
一時的な解決策として、私は第2のアプローチを行った。しかし、私はそれが好きではありません。私のコントローラ(豆)が私の見解に大きく依存しているからです。私はjsfが私に良い解決策を提供すると思った。 – userk
JSFでは、バッキングBeanは単一のビューを元に戻すように "想定されています"ので、バッキングBeanはビューに依存することができます。 'bean2じゃない。convertSelectedItemsToString'は既に特定のビューを表示していますか、またはそこに汎用のものを実行していますか?ジェネリックソリューションが必要な場合は、ページにパラメータとして渡すことができます。更新された回答をご覧ください。 –
それは賢明な回避策です!私はそれをやろう!ありがとう。 – userk