2009-04-24 6 views
2

私は最初のポートレットベースのアプリケーションを作成しています(ライフサイクルでは解決策はコンテナに依存しません)。別のポートレット(ポータル内の異なる「ページ」にある可能性があります)に移動します。ポータル/ポートレットプログラミング - ポートレットのリンク/ページフロー

ポートレット内で異なるビューモードを簡単に使用できますが、別のポートレットにリンクするにはどうすればよいでしょうか?

私は、ポートレット間の明白な通信については言及していません。興味のある実際のページフローです。

例: ニュース項目のリストを表示するポートレットを持つページAがあります。次に、ページBが設定された状態になります。単一のニュース項目を表示したい(たとえば、周囲の異なるポートレットなど)

ページBにリンクしてニュースに言う汎用ソリューションがありますか-Detail - アイテムXYZを表示するポートレット?

news-list-portletの編集モードを使用して、ターゲット・リンクを構成することが迅速かつ簡単です。しかし、これはいくつかの欠点があります。 - 複雑なポートレットは、ポータル管理者 のための大規模なコンフィギュレーションの努力につながるいくつかのターゲットのURLがあり - URLは、単純なパラメータ注入私は心の中で解決策を持っている

を可能にする仕組みに従わないことを、これには大規模な作業が必要であり、対象のポートレットが変更される可能性があります。これは、サードパーティのポートレットを使用する場合は必ずしも可能ではありません。

私のソリューションは、次のようになります。(ドラフトを!)

ポートレットは、そのポートレットIDを持つ中央サービスに登録して、ポートレットがポートレットにリンクしたい場合、それはシンボル名に基づいて検索を行うことができます。これにより、ポートレットを「自動検出」することができるため、管理者の負担が軽減されます。このサービスは、ソースおよびターゲット・ポートレットに基づいてポートレットを配線するためのUIも提供します。

変更可能なポートレットのURL生成は、注入されたパラメータを使用してURL全体を生成して戻すポートレットへのサービス呼び出しによって解決できます。 変更できないポートレットの場合は、パラメータを追加して動作させる必要があります。 :/

より簡単なソリューションはありますか?既存のソリューションですか?

ありがとうございます!

パトリック

答えて

1

私が知る限り、ポートレットの仕様ではこれをカバーしていません。したがって、ポータブルなソリューションはありません。 Liferayでは、常にこの問題を狙ったカスタムタグライブラリを使用することができます。 Websphere Portalにも同様のメカニズムがあります。何かがherehere

私はコミュニケーションを書いたように一般的に私は

+0

ありがとう、私は自分自身で抽象化を使用して何かを書く必要があるようです。 –

0

JSR 286仕様では、ポートレット間通信にイベントを使用できます。古いJSR 168の場合、そうすることを推奨する方法はありません。あなたのために働く方法を見つけたら、それを使用してください。

Manning(登録が必要です)から無料で寄せられた古い本があります。そこにいくつかのアイデアを見つけることができます。

+0

(公開パラメータやイベントをレンダリング)この問題を回避し、標準のIPCメカニズムを使用しようとするだろうが問題ではありません、私が持っているかもしれ

を見つけることができます主な問題である別のページに切り替える。 –

+0

ターゲットポートレットが私によって書かれていないときにイベントを使用する機会がないかもしれません –