Documentation

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.22-ga22

http://localhost:8080でLiferayにサインインします。メールアドレスtest@liferay.comとパスワードtestを使用してください。プロンプトが表示されたら、パスワードをlearnに変更します。

次に、以下の手順を実行します。

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

    curl https://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)
    

    注釈

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

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

    STARTED com.acme.w3e7.web_1.0.0
    
  4. Samples] カテゴリからウィジェットページに [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 {

注釈

パッケージ名の*.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アクションコマンド (近日公開!) を参照してください。 バックエンドのデータモデルを実装するには、 サービスビルダー を参照してください。