私は最初のポートレットベースのアプリケーションを作成しています(liferay用ですが、ソリューションはコンテナに依存しない必要があります)。さまざまなポートレット(ポータルのさまざまな「ページ」にある可能性があります)に「つながる」ユーザーへのリンクを提供するために、人々がどのように解決するのか疑問に思っています。 )。
ポートレット内でさまざまな表示モードを簡単に設定できますが、別のポートレットにリンクして、(おそらく)パラメーターを渡すにはどうすればよいでしょうか。
私は、ポートレット間の単純な通信について話しているのではありません。私が興味を持っているのは、実際のページフローです。
例:ニュース項目のリストを表示するポートレットを含むページAがあります。次に、構成された方法でページBがあります。単一のニュース項目を表示したいのです(たとえば、その周りのさまざまなポートレット)。
ページBにリンクし、ニュース-詳細-ポートレットにアイテムXYZを表示するように指示する一般的な解決策はありますか?
手っ取り早い解決策は、news-list-portletの編集モードを介してターゲットリンクを構成することです。ただし、これにはいくつかの欠点があります。-複雑なポートレットには複数のターゲットURLが含まれている可能性があり、ポータル管理者の大規模な構成作業につながる可能性があります-URLは単純なパラメータインジェクションを許可するスキームに従わない可能性があります
私は解決策を考えていますが、これには多大な労力が必要であり、ターゲットのポートレットを変更する必要があります。これは、サードパーティのポートレットを使用している場合は常に可能とは限りません。
私の解決策は次のようになります:(ドラフト!)
ポートレットは、ポートレットIDを使用して中央サービスに登録します。ポートレットがポートレットにリンクする場合は、シンボリック名に基づいてルックアップを実行できます。これにより、ポートレットを「自動検出」できるため、管理者の苦痛が軽減されます。このサービスは、ソースおよびターゲットポートレットに基づいてポートレットをワイヤリングするためのUIを提供する場合もあります。
変更可能なポートレットのURL生成は、パラメータが挿入されたURL全体を生成して返すポートレットへのサービス呼び出しによって解決できます。変更できないポートレットの場合は、パラメータを追加して、それが機能することを期待する必要があります。:-/
助言がありますか?より簡単な解決策はありますか?既存のソリューション?
ありがとう!
パトリック