JSPとMVCポートレットの使用
Webアプリケーションの開発を開始する簡単な方法は、JSPファイルにマークアップを追加し、ポートレットJavaクラスを使用してそれをレンダリングすることです。
サンプルのW3E7アプリケーションでは、このアプローチを示しています。

アプリケーションには、マークアップコンテンツを含むJSPと、JSPをレンダリングするMVCPortletクラスがあります。 サンプルをデプロイして、MVCポートレットを含むJSPを使用してアプリケーションを作成する方法を学習します。
シンプルなMVCポートレットモジュールをデプロイする
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132
http://localhost:8080 で Liferay にサインインしてください。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更してください。
次に、以下の手順に従ってサンプルをデプロイしてください。
-
サンプルをダウンロードして解凍してください。
curl https://resources.learn.liferay.com/examples/liferay-w3e7.zip -Ounzip liferay-w3e7.zip -
サンプルをビルドしてデプロイします。
cd liferay-w3e7./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)注記このコマンドは、モジュール JAR を Docker コンテナ上の
/opt/liferay/osgi/modulesにコピーすることと同じです。 -
Dockerコンテナコンソールでデプロイを確認してください。
com.acme.w3e7.web_1.0.0 を開始しました -
「サンプル」カテゴリにある「W3E7 ポートレット」ウィジェットをウィジェットページに追加し、アプリケーションが利用可能かどうかを確認してください。

おめでとうございます。新しいアプリケーションの構築とデプロイに成功しました。
次に、このポートレットアプリケーションの作成方法を学びます。
MVCポートレットを使用してアプリケーションを作成する方法
サンプルポートレットを構築するには、次の2つのステップがあります。
- JSPを使用してビューを作成します。
- アプリケーションを登録してレンダリングするために、
MVCPortletを作成します。
ビューテンプレートを作成する
モジュールの src/main/resources/META-INF/resources フォルダ内に、ビューテンプレートとなる JSP ファイルを作成します。 ファイル名は任意です。例の JSP ファイルは view.jsp です。 以下はJSPの内容です。
<h4>W3E7 ポートレット</h4>
<h5>こんにちは、W3E7。</h5>
上記のマークアップは「こんにちは W3E7」という見出しを表示します。
MVCPortletを作成する
モジュールの src/main/java フォルダーに、 com.acme.w3e7.web.internal.portlet という名前のパッケージを作成します。 そのパッケージに、 W3E7Portlet というクラスを追加し、 MVCPortlet を継承します。
public class W3E7Portlet extends MVCPortlet {
パッケージ名の *.web.internal.portlet 部分は慣例です。 web はウェブモジュールタイプ、 internal はポートレット実装がプライベートであるため、 portlet はクラスがポートレットであるためです。
この拡張機能には追加のメソッドは必要ありません。 MVCPortletの組み込みメソッドは、コンポーネント注釈 (次に追加) を使用して、 view.jsp テンプレートをレンダリングします。
アノテーションを使用してポートレットを設定する
@Component アノテーションはポートレットを設定します。
@Component(
property = {
"com.liferay.portlet.display-category=category.sample",
"jakarta.portlet.display-name=W3E7 Portlet",
"jakarta.portlet.init-param.view-template=/view.jsp"
},
service = Portlet.class
)
public class W3E7Portlet extends MVCPortlet {
}
service = Portlet.class 属性は、クラスを ポートレット として登録します。
プロパティ 属性の値は、ポートレット Web アプリケーションを記述します。 com.liferay.portlet.display-category=category.sample プロパティは、アプリをサンプルウィジェットカテゴリに追加します。 javax.portlet.display-name=W3E7 Portlet プロパティはアプリの名前を指定します。
javax.portlet.init-param.view-template=/view.jsp プロパティは、アプリケーションの resources/META-INF/resources フォルダーに対するビュー テンプレート パスを宣言します。 ポートレットをページに追加すると、 resources/META-INF/resources/view.jsp ビュー テンプレートがレンダリングされます。
ポートレット記述子から OSGi サービスプロパティへのマップ は、OSGi コンポーネントのプロパティ値を従来のポートレット記述子にどのようにマッピングするかを指定します。
次は?
あなたはJSPと1つのシンプルなJavaクラスを使ってWebアプリケーションを作成しました。 ここから先は、様々な方向に進むことができます。 ビューを追加するには、 MVC ポートレットを使用したビューのレンダリング を参照してください。 アプリケーションにアクションを追加するには、 MVC アクション コマンド を参照してください。 または、 Service Builder を使用してバックエンドデータモデルを実装します。