Developing a Web Application
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Springの使用

Spring FrameworkとModel-View-Controller(MVC)パターンが好きなら、 PortletMVC4Springを使用してポートレットを開発できます。 このフレームワークを使用する場合、 Spring Web MVC を使用したサーブレットベースの Web アプリケーションの開発に既に慣れているかもしれません。 PortletMVC4Springは、MVCを使用してポートレットベースのアプリケーションを開発するためのものです。 次のような機能を備えた Spring Framework Liferay ポートレットを構築できます。

  • 制御の反転(IoC)/依存性注入(DI)
  • アノテーション
  • セキュリティ
  • バインディングと検証
  • 複数パートファイルのアップロード
  • … その他

PortletMVC4Springに関するトピックは以下のとおりです。

  • PortletMVC4Spring を使用したポートレットの開発: PortletMVC4Spring を使用してポートレットを作成およびデプロイする方法を示します。

  • アノテーションベースのコントローラ開発: プレーンな古い Java オブジェクト (POJO) とアノテーションを使用してコントローラを実装する方法を示します。

背景

PortletMVC4SpringプロジェクトはSpring Portlet MVCとして始まり、 Spring Frameworkの一部でした。 SPR-14129の下でプロジェクトが Spring Framework のバージョン 5.0.x から削除されたため、プロジェクトをフォークして名前を変更する必要が生じました。 これにより、Spring FrameworkおよびPortlet APIの最新バージョンとの互換性を確保するために、プロジェクトの改善と維持が可能になった。

Liferay は 2019 年 3 月に Spring Portlet MVC を採用し、プロジェクト名を PortletMVC4Spring に変更しました。

Spring Web MVCはPortletMVC4Springに似ていますが、ポートレット向けに最適化されています。 ポートレットのワークフローは、サーブレットのワークフローとは異なり、ポートレットへのリクエストには ACTION_PHASERENDER_PHASE という 2 つの異なるフェーズがあります。 ACTION_PHASE は一度だけ実行され、データベース操作などのバックエンドの変更やアクションをトリガーします。 RENDER_PHASE は、ディスプレイが更新されるたびにポートレットのコンテンツをユーザーに表示します。 したがって、単一のリクエストに対して、 ACTION_PHASE は一度だけ実行されますが、 RENDER_PHASE は複数回実行される可能性があります。 これは、システムの永続的な状態を変更する活動とコンテンツを生成する活動との間に明確な分離を提供する(そして必要とする)。 Portlet 2.0仕様では、イベントフェーズとリソースフェーズという2つのフェーズが追加され、どちらもアノテーション駆動型ディスパッチングによってサポートされています。

PortletMVC4Spring は、レンダリング、アクション、イベント、リソース提供のポートレット フェーズからのリクエストをサポートするアノテーションを提供します。Spring Web MVC は、 @RequestMapping アノテーションのみを提供します。 Spring Web MVC コントローラでは、 @RequestMappingで注釈が付けられた単一のハンドラ メソッドを持つことができますが、同等の PortletMVC4Spring コントローラでは、それぞれがフェーズ注釈の 1 つを使用する複数のハンドラ メソッドを持つことができます。 @ActionMapping@EventMapping@RenderMapping、または @ResourceMapping

PortletMVC4Springフレームワークは、Webフレームワークの DispatcherServlet と同様に、ハンドラーにリクエストをディスパッチする DispatcherPortlet を使用します。このハンドラーは、構成可能なハンドラーマッピングとビュー解決を備えています。

ポートレット、ポートレットの仕様、ポートレットとサーブレットの違いに関する詳細については、 ポートレット を参照してください。

Liferayはまた、JSPとThymeleafのビューテンプレートを使うことを実証する、フル機能のサンプルポートレットを提供します。 これらは、フォームベースのポートレットアプリケーションが通常必要とする多くの機能を備えている。

このPortletMVC4Springポートレットは、求人応募を送信するためのものです。 これは、前述のSpringの機能を利用し、複数のポートレットフェーズからのリクエストを処理します。

サンプルはこちらから入手できます。

ソースコードMaven Central
申請者用JSPポートレットcom.liferay.portletmvc4spring.demo.applicant.jsp.portlet.war
申請者タイムリーフポートレットcom.liferay.portletmvc4spring.demo.applicant.thymeleaf.portlet.war

PortletMVC4Springポートレットの基本的な理解と、Spring Web MVCアプリケーションとの比較について理解できたところで、いよいよPortletMVC4Springポートレットの開発に取り掛かりましょう。