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コンテナコンソールでデプロイを確認します。
STARTED 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 Portlet</h4>
<h5>Hello W3E7.</h5>
上のマークアップには、「Hello W3E7」という見出しが表示されています。
MVCPortletを作成する
モジュールのsrc/main/javaフォルダに、com.acme.w3e7.web.internal.portletというパッケージを作成します。 そのパッケージに、 MVCPortletを拡張する W3E7Portlet というクラスを追加します。
public class W3E7Portlet extends MVCPortlet {
パッケージ名の *.web.internal.portlet の部分は規則です。Web モジュール タイプの場合は web 、ポートレット実装がプライベートの場合は internal 、クラスがポートレットの場合は portlet となります。
この拡張機能には、追加のメソッドは必要ありません。 MVCPortletの組み込みメソッドは、コンポーネントのアノテーション(次で追加)を使用してview.jspテンプレートをレンダリングします。
アノテーションを使用してポートレットを構成する
@Component アノテーションによってポートレットが構成されます。
@Component(
property = {
"com.liferay.portlet.display-category=category.sample",
"javax.portlet.display-name=W3E7 Portlet",
"javax.portlet.init-param.view-template=/view.jsp"
},
service = Portlet.class
)
public class W3E7Portlet extends MVCPortlet {
}
service = Portlet.class属性は、クラスをPortletとして登録します。
property属性の値は、ポートレット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 アクション コマンドを参照してください。 または、 サービス ビルダーを使用してバックエンド データ モデルを実装します。