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.55-ga55。
http://localhost:8080でLiferayへのサインインします。 メールアドレス[email protected]_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。
次に、以下の手順でサンプルをデプロイします。
サンプルをダウンロードして解凍します。
curl https://resources.learn.liferay.com/dxp/latest/ja/building-applications/developing-a-java-web-application/using-mvc/liferay-w3e7.zip -O
unzip liferay-w3e7.zip
サンプルをビルドしてデプロイします。
cd liferay-w3e7
./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
noteこのコマンドは、モジュール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アクションコマンドを参照してください。 バックエンドのデータモデルを実装するには、サービスビルダーを参照してください。