あなたはおそらくそれらの質問を別々に尋ねるべきです、それでも私はそれらの両方に答えようとします
1.ポートレット通信
ポートレット間でデータを交換する方法はたくさんあります。これらはおそらく最も一般的で、有用で、正しいものです(ただし、私が考えることができるものは他にもあり、非常に具体的な要件については、おそらくもっと多くのものを思い付くことができます)。
- セッション属性-これらは非常に役立ちますが、パフォーマンスに悪影響を与える可能性があるため、使いすぎないでください。一方のポートレットのアクションフェーズでいくつかのセッション属性を書き込み、もう一方のポートレットのレンダリングフェーズでそれらを読み取るだけです。
- パブリックレンダリングパラメータ-ポートレット仕様へのポートレット2.0の追加。これらはセッション属性よりも効率的ですが、portlet.xmlで追加の構成が必要です。特定の実装はこの質問の範囲外ですが、インターネットでこのトピックに関する多くの資料を見つけることができます。
言及した別のポートレットのアクションに基づいて1つのポートレットにコンテンツを表示する特定のケースは非常に一般的であり、パブリックレンダリングパラメータがこれに最も適しています。これは、LiferayのネイティブのAsset Publisher + Navigation(Tag、Category)ポートレットで確認できます。
2.レイアウトテンプレート
あなたが説明した要件は、Liferayのレイアウトテンプレートによって解決されます。それらのかなりの数がLiferayにバンドルされており、ネストされたポートレットポートレットとの相乗効果により、多くの複雑なページレイアウトをモデル化できます。ページごとにレイアウトテンプレートを設定できます。トップバーにそれらを選択するためのリンクがあります(管理ユーザー向け)。ポートレットを埋め込むことができる独自のカスタムレイアウトテンプレートを作成することもできます。もう一度、liferay埋め込みポートレットとliferayレイアウトテンプレートをWebで検索してください。これらの2つのトピック(すべてのliferay開発関連トピックについては言えません)について、見つけやすく、詳細な情報がたくさんあります。