JSF/ICEFacesを使用しています。値を持つ行が多数あるテーブルがあり、グラフを表示する別のページがあります。その特定のコンボをグラフ化するために、すべての行にアイコンを配置したいと思います。文字列ナビゲーションルールを返すことで、JSFで通常のナビゲーションを行うことを知っています。ただし、行に対応するBeanからチャート作成を行うBeanにパラメーターを渡す方法がわかりません。私がその問題に取り組むことができることを知っていますか?
ありがとう、
タム
つまり、ページAにはスタッフの表があり、ページBには個々のスタッフのチャートがあります。フローは次のとおりです。ページAに移動->テーブルを確認->ページAで何かをクリックしてグラフを表示->ページBに移動->グラフを読む
ここでできることはいくつかあります。3つ提案します。
1つは、チャートページをRESTfulにして、チャート化するもののIDを渡すことができます。IE、ページの列には次のようになります。
<ice:outputLink value="/chartPage?stuffID=#{iterator.stuffID}">Review Chart</ice:outputLink>
次に、チャートページのバッキングBeanで、JAX-RSを使用してページパラメータを渡すか、リクエストオブジェクトを浚渫することができます。
((
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("stuffID)
これを使用して、StuffIDを取得し、グラフを作成できます。これにより、関心の分離が実現し、グラフを取得するBeanを気にすることなく、グラフページでグラフを作成できるようになります。これは私が個人的にこれを行う方法です。
2つ目は、 Beanセッションのスコープを設定する(または、Seamなどを使用している場合は会話のスコープを設定する)ことで、2つのページが1つのBeanを共有するようにすることができます。これはおそらく最も簡単ですが、Beanが不要になったときにクリーンアップする必要があるため、やや危険です。
3つ目は、通常のHTTPフォームを使用して、1番目に行ったのと同じ種類のRequestParameterMap浚渫を使用して、グラフページにPOSTすることができます。これは1番と同じように機能しますが、これを実行するすべての場所で同様のフォームが必要になるほどクリーンではなく、通常のハイパーリンクにすることはできません。
これらの3つはあなたが必要とすることを達成するでしょう、しかし、繰り返しますが、私の推薦はナンバーワンでしょう。通常のハイパーリンクだけでチャートページにリンクできると、おそらくかなり便利です。
文字列の代わりにオブジェクトを渡す方法は?