ポートレットおよびコア内のJSPをカスタマイズする方法はいくつかあります。 Liferay DXPのAPIでは、それらをカスタマイズする最も安全な方法を提供しています。他の方法でJSPをカスタマイズした場合、JSPの新しいバージョンではカスタマイズが無効になり、実行時エラーが発生する可能性があります。APIベースの方法のいずれかを使用することを強くお勧めします。
LiferayのAPIを使用してJSPをオーバーライドする
Liferay DXPのJSPをオーバーライドするAPIベースのアプローチは次のとおりです。
アプローチ | 説明 | 短所/制限 |
---|---|---|
動的インクルード | 動的インクルードタグでコンテンツを追加します。 | dynamic-include タグ(またはクラスがIncludeTag から継承しているタグ)を持つJSPに限定されます。動的インクルードタグでJSPにのみコンテンツを挿入します。 |
ポートレットフィルター | ポートレットのリクエストやレスポンスを変更して、JSPカスタマイズをシミュレートします。 | このアプローチではJSPは直接カスタマイズされませんが、JSPカスタマイズの効果は得られます。 |
LiferayのAPIを使用せずにJSPをオーバーライドする
前のセクションで説明したように、Liferay DXPのAPIを使用してJSPをカスタマイズすることを強くお勧めします。OSGiフラグメントまたはカスタムJSPバッグを使用したJSPのオーバーライドはAPIに基づいていないため、それらが正常に失敗する保証はありません。その代わり、カスタマイズにバグがある場合(コードやLiferayの変更のせいで)、ほとんどの場合は実行時に、機能が壊れたり、厄介なログエラーが表示されたりすることで気付くはずです。これらのアプローチは、最後の手段としてのみ使用してください。
これらのアプローチのいずれかを使用するJSPカスタマイズを維持している場合は、それらの動作を知っておく必要があります。このセクションでは、アプローチとそれらのチュートリアルへのリンクについて説明します。
Liferay DXPのAPIを使用せずにJSPをカスタマイズする方法は次のとおりです。
アプローチ | 説明 | 短所/制限 |
---|---|---|
OSGiフラグメント | OSGiフラグメントを使用してモジュールのJSPを完全にオーバーライドします | 元のJSPまたはモジュールを変更すると、ランタイムエラーが発生する可能性があります。 |
カスタムJSPバッグ | Liferay DXPのコアJSPまたは対応する-ext.jsp ファイルの1つを完全にオーバーライドします。 | Liferay DXPのコアJSPのみ。元のJSPまたはモジュールを変更すると、ランタイムエラーが発生する可能性があります。 |
すべてのJSPカスタマイズアプローチを使用できます。いくつかのJSPをカスタマイズしてみましょう。