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コンテナコンソールでデプロイを確認します。

    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 {

パッケージ名の *.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 アクション コマンドを参照してください。 または、 サービス ビルダーを使用してバックエンド データ モデルを実装します。