2

私は最初のポートレットベースのアプリケーションを作成しています(liferay用ですが、ソリューションはコンテナに依存しない必要があります)。さまざまなポートレット(ポータルのさまざまな「ページ」にある可能性があります)に「つながる」ユーザーへのリンクを提供するために、人々がどのように解決するのか疑問に思っています。 )。

ポートレット内でさまざまな表示モードを簡単に設定できますが、別のポートレットにリンクして、(おそらく)パラメーターを渡すにはどうすればよいでしょうか。

私は、ポートレット間の単純な通信について話しているのではありません。私が興味を持っているのは、実際のページフローです。

例:ニュース項目のリストを表示するポートレットを含むページAがあります。次に、構成された方法でページBがあります。単一のニュース項目を表示したいのです(たとえば、その周りのさまざまなポートレット)。

ページBにリンクし、ニュース-詳細-ポートレットにアイテムXYZを表示するように指示する一般的な解決策はありますか?

手っ取り早い解決策は、news-list-portletの編集モードを介してターゲットリンクを構成することです。ただし、これにはいくつかの欠点があります。-複雑なポートレットには複数のターゲットURLが含まれている可能性があり、ポータル管理者の大規模な構成作業につながる可能性があります-URLは単純なパラメータインジェクションを許可するスキームに従わない可能性があります

私は解決策を考えていますが、これには多大な労力が必要であり、ターゲットのポートレットを変更する必要があります。これは、サードパーティのポートレットを使用している場合は常に可能とは限りません。

私の解決策は次のようになります:(ドラフト!)

ポートレットは、ポートレットIDを使用して中央サービスに登録します。ポートレットがポートレットにリンクする場合は、シンボリック名に基づいてルックアップを実行できます。これにより、ポートレットを「自動検出」できるため、管理者の苦痛が軽減されます。このサービスは、ソースおよびターゲットポートレットに基づいてポートレットをワイヤリングするためのUIを提供する場合もあります。

変更可能なポートレットのURL生成は、パラメータが挿入されたURL全体を生成して返すポートレットへのサービス呼び出しによって解決できます。変更できないポートレットの場合は、パラメータを追加して、それが機能することを期待する必要があります。:-/

助言がありますか?より簡単な解決策はありますか?既存のソリューション?

ありがとう!

パトリック

4

2 に答える 2

1

私の知る限り、Portlet Specification はこれをカバーしていません。したがって、移植可能なソリューションはありません。Liferay では、まさにこの問題を狙ったカスタム タグ ライブラリをいつでも使用できます。Websphere Portal にも同様のメカニズムがあります。

ここここで何かを見つけることができます

通常、私はこれを避け、標準の IPC メカニズム (パブリック レンダリング パラメータまたはイベント) を使用しようとします。

于 2009-04-24T12:50:26.170 に答える
0

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

マニングさんから無料で古本をプレゼントされています(要登録)。そこでいくつかのアイデアを見つけることができます。

于 2009-04-24T10:25:46.953 に答える