1

うまくいっていることを願っています。

これが私のシナリオです。グリッド/テーブルを使用してデータを表示する複数 (20 以上) の Liferay ポートレットがあります。

各ポートレットは、異なる基準に基づいてデータを取得します。

ただし、グリッドは、フィルタリング、ページネーション、データ エクスポートなどのいくつかの一般的な機能と同じです。

現在、グリッド スタイルを変更する必要があるたびに、20 以上のポートレットのそれぞれで変更を行う必要があります。これは非常に非効率的であり、多くの時間を無駄にします。

したがって、複数のポートレットからのデータを表示できるように、汎用の「ポートレット」または「コンポジット」を作成できるかどうか疑問に思っていました。詳しく説明すると、一般的なポートレット/コンポジットには、グリッド、フィルタリング、ページネーション、エクスポートなどの機能が含まれます。

この汎用ポートレット/コンポジットは、さまざまなポートレットからデータを受け取り、それを表示するだけです。

したがって、グリッド スタイルを変更する必要がある場合は、1 か所だけ変更するだけで十分です。

以前にそのようなシナリオを経験した人はいますか?

解決策はありますか?

助けてくれてありがとう。

4

2 に答える 2

1

異なる基準でデータを取得するだけで、データのエクスポート、印刷、ページ付けなどの機能が必要な場合は、20 以上の異なるポートレットは必要ありません。1 つのポートレットを使用して 20 以上のインスタンスを持つことができ、それぞれが enable.export のように構成されます。 、enable.print、data.criteria など。ポートレット内では、ロジックによって必要なグリッドとデータが構築されます。

Generic Portlet が本当に必要な場合は、20 以上のポートレットすべてを 1 つの .war にまとめてみてください。一部のポートレット内で共通の jsp を含めるだけで、コントローラなどを拡張できます。

さらに...ポートレット間でデータを送信する必要がある場合は、イベントを相互に送信するJavaScriptコントローラーを作成できます.Ajaxを介してデータを取得し、jspsを入力します(その場合、いくつかのテンプレートを使用できます)。不明な点があれば質問してください。

于 2013-02-07T11:33:54.100 に答える