|
||||||||||||
| 前のページ 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 これでサーブレットからSpringのDIコンテナにアクセスすることができるようになった。NexawebとSpringを連携する最も単純な例は、リスト6のようにサーブレットを用意し、リクエストパラメータやURLなどから画面からどのようなリクエストがされたか解釈し(リスト6-(1))、SpringのDIコンテナから「ProductService」を取得して(リスト6-(2))処理する方法だ。 リスト6:最も単純なNexaweb-Spring連携 しかし、これではあまりにも連携が稚拙であり、決まりきったような処理のサーブレットを毎回自作するのも面倒だといえる。このようなとき、画面がリクエストしてくるURLを解釈して処理するMVCフレームワークと連携すべきだろう。そこで今回はSpringが提供するMVCフレームワークである「SpringMVC」を利用する。 SpringMVCを利用するには、まずweb.xmlに画面からのリクエストをコントローラに振り分けてくれるサーブレット「DispatcherServlet」を定義する。 リスト7:web.xml(SpringMVCとの連携) 次に画面からのリクエストをどのコントローラに振り分けるかという定義が必要となる。今回「findAllProduct.htm」へのリクエストは、商品の一覧を取得する際に画面がリクエストするURLには、order.htmへのリクエストが商品を注文する際に画面がリクエストするURLとしよう。 このように定義したリクエストとコントローラの振り分けの定義ファイルはリスト7-(1)で指定された「サーブレット名 & "-servlet.xml"」というファイル名で、WEB-INF以下に配置する(リスト8)。 リスト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 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||






