Using 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.132-ga132

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

次に、以下の手順に従ってサンプルをデプロイしてください。

  1. サンプルをダウンロードして解凍してください。

    curl https://resources.learn.liferay.com/examples/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コンテナコンソールでデプロイを確認してください。

    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 ポートレット</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 を使用してバックエンドデータモデルを実装します。