JSPおよびMVCポートレットの使用

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_に変更します。

次に、以下の手順でサンプルをデプロイします。

  1. サンプルをダウンロードして解凍します。

    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
    
  2. サンプルをビルドしてデプロイします。

    cd liferay-w3e7
    
     ./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
    
    note

    このコマンドは、モジュールJARをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。

  3. Dockerコンテナコンソールでデプロイを確認します。

    STARTED com.acme.w3e7.web_1.0.0
    
  4. サンプル] カテゴリからウィジェットページに [W3E7ポートレット] ウィジェットを追加して、アプリケーションの可用性を確認します。

これは、ポートレットWebアプリケーションの例です。

新しいアプリケーションの構築とデプロイが完了しました。

次に、このポートレットアプリケーションを作成する方法を学習します。

MVCポートレットを使用してアプリケーションを作成する方法

サンプルポートレットを構築するには、次の2つの手順があります。

  1. JSPを使用してビューを作成する。
  2. 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 {
note

パッケージ名の*.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ビューテンプレートがレンダリングされます。

note

OSGiサービスのプロパティマップへのポートレット記述子 では、OSGiコンポーネントのプロパティ値を従来のポートレット記述子にマップする方法を説明しています。

次のステップ

  JSPと1つの単純なJavaクラスを使用してWebアプリケーションを作成しました。 ここから先は、いろいろな選択があります。 ビューをさらに追加するには、MVCポートレットを使用したビューのレンダリングを参照してください。 アプリケーションにアクションを追加するには、MVCアクションコマンドを参照してください。 バックエンドのデータモデルを実装するには、サービスビルダーを参照してください。

追加情報