ポータル/ポートレット プログラミング - ポートレットのリンク/ページ フロー

StackOverflow https://stackoverflow.com/questions/785277

  •  16-09-2019
  •  | 
  •  

質問

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

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

私が話しているのはポートレット間の単純な通信ではなく、私が興味があるのは実際のページフローです。

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

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

手っ取り早い解決策は、ニュース リスト ポートレットの編集モードを使用してターゲット リンクを設定することです。しかし、これにはいくつかの欠点があります。- 複雑なポートレットには、ポータル管理者の大規模な構成の取り組みにつながるいくつかのターゲットURLがある場合があります - URLは、単純なパラメーターインジェクションを許可するスキームに従わない場合があります

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

私の解決策は次のようになります。(下書き!)

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

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

助言がありますか?もっと簡単な解決策はあるのでしょうか?既存のソリューション?

ありがとう!

パトリック

役に立ちましたか?

解決

私の知る限り、ポートレット仕様にはこれが記載されていません。したがって、移植可能なソリューションはありません。Liferay の場合は、まさにこの問題を目的としたカスタム タグ ライブラリをいつでも使用できます。Websphere Portal にも同様のメカニズムがあります。

何かが見つかるかもしれない ここ そして ここ

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

他のヒント

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

マニングするから無料で配っ古い本があります(登録が必要)。あなたはそこにいくつかのアイデアを見つけることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top