TOPシステム開発> NexawebとSpringとの連携
Nexaweb Studio
Nexaweb Studioで手軽にリッチクライアントアプリケーション開発

第4回:Format_サーバ側との連携を実現する

著者:チェンジビジョン  岩永 寿来、豆蔵  長谷川 裕一
2007/6/19
前のページ  1  2  3   4  次のページ
NexawebとSpringとの連携

   ビジネスロジックやDAOが定義されたBean定義ファイルは、web.xmlに「ContextLoaderListener(リスト5-(1))」を定義することでTomcatの起動時に読み込まれる。ContextLoaderListenerはリスト5-(2)のcontextConfigLocationで定義された場所(/WEB-INF/applicationContext.xml)からBean定義ファイルを読み込んでいる。
リスト5:web.xml
リスト5:web.xml
(画像をクリックすると別ウィンドウに拡大図を表示します)

   これでサーブレットからSpringのDIコンテナにアクセスすることができるようになった。NexawebとSpringを連携する最も単純な例は、リスト6のようにサーブレットを用意し、リクエストパラメータやURLなどから画面からどのようなリクエストがされたか解釈し(リスト6-(1))、SpringのDIコンテナから「ProductService」を取得して(リスト6-(2))処理する方法だ。

リスト6:最も単純なNexaweb-Spring連携
リスト6:最も単純なNexaweb-Spring連携
(画像をクリックすると別ウィンドウに拡大図を表示します)

   しかし、これではあまりにも連携が稚拙であり、決まりきったような処理のサーブレットを毎回自作するのも面倒だといえる。このようなとき、画面がリクエストしてくるURLを解釈して処理するMVCフレームワークと連携すべきだろう。そこで今回はSpringが提供するMVCフレームワークである「SpringMVC」を利用する。

   SpringMVCを利用するには、まずweb.xmlに画面からのリクエストをコントローラに振り分けてくれるサーブレット「DispatcherServlet」を定義する。

リスト7:web.xml(SpringMVCとの連携)
リスト7:web.xml(SpringMVCとの連携)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   次に画面からのリクエストをどのコントローラに振り分けるかという定義が必要となる。今回「findAllProduct.htm」へのリクエストは、商品の一覧を取得する際に画面がリクエストするURLには、order.htmへのリクエストが商品を注文する際に画面がリクエストするURLとしよう。

   このように定義したリクエストとコントローラの振り分けの定義ファイルはリスト7-(1)で指定された「サーブレット名 & "-servlet.xml"」というファイル名で、WEB-INF以下に配置する(リスト8)。

リスト8:hokkaien-servlet.xml
リスト8:hokkaien-servlet.xml
(画像をクリックすると別ウィンドウに拡大図を表示します)

   リスト8-(1)はURLからどのコントローラを呼び出すか定義している箇所だ。「findAllProduct.htm、order.htm」というURLをリクエストされた場合、productControllerを呼び出すというマッピングがされている。

   マッピングされたコントローラ「productController」はリスト8-(2)で定義されている。1つのコントローラで、複数のリクエストを解決するため「findAllProduct.htm」というリクエストはhandleFindAllProductメソッドに定義されており、order.htmへのリクエストはhandleOrderメソッドに振り分ける定義がリスト8-(3)となる。

前のページ  1  2  3   4  次のページ


株式会社チェンジビジョン 岩永 寿来
著者プロフィール
株式会社チェンジビジョン  岩永 寿来
モデリングツールJUDEを開発しているチェンジビジョンで、ソフトウェア開発プロジェクトの見える化を支援するTRICHORDを開発している。最近は2DやJOGLなど3D技術に興味があり、クールなUIやエフェクトを日々探求している。共著として「Spring入門(技術評論社)」、「Spring2.0入門(技術評論社)」。


株式会社豆蔵 長谷川 裕一
著者プロフィール
株式会社豆蔵  長谷川 裕一
XMLの技術開発やCORBA、EJBを使用したシステム開発などを経て、現在はアジャイル開発プロセスの導入から工学的なソフトウエアプロセスの策定、オープンソースプロダクトに関するコンサルタント、アーキテクトとして常に第一線で活躍。共著として「プログラムの育てかた 現場で使えるリファクタリング(ソフトバンク)」、「Spring入門(技術評論社)」。


INDEX
第4回:Format_サーバ側との連携を実現する
  サンプルから学ぶ、Nexawebの機能
  サーバ側との連携
NexawebとSpringとの連携
  どのようなビューを表示するかを定義する