3-2 商品詳細画面を作ろう
この節では、SpringMVCを用いて画面遷移を表現する方法が述べられています。リクエストURLとコントローラをマッピングする方法や、ビジネスロジックを終えた後にビューへ指示を出す方法など、サーバー上で行なわれている処理がより具体的に見えてきました。
リクエストURLとコントローラのマッピングについて、この節ではSimpleUrlHandlerMappingクラスが利用されています。とはいうものの、XMLファイルにその関連性を記述するだけなので、自前のクラスを作成することなく、リクエストを適切なコントローラへディスパッチすることができます。
また、コントローラからビューを扱う際に利用する時に利用するViewResolverインターフェイスの実装クラスも登場しました。InternalResourceViewResolverクラスを利用し、そこにViewに関する基本情報(viewファイルのパスやprefix/suffix)をXML上に記述しておけば、コントローラからビューを呼び出す処理を簡潔に書くことができます。
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // 商品一覧を取得 List itemList = this.shopService.getItemList(); // モデルの作成 Map model = new HashMap(); model.put("itemList", itemList); // 戻り値となるModelAndViewインスタンスを作成 ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("index"); // <- ここを、前節では"/WEB-INF/jsp/index.jsp"と直書きしていた modelAndView.addAllObjects(model); return modelAndView; }
XMLの設定ファイルについても、この節ではSpringMVC用とビジネスロジック定義用とを分けて管理しています。そのロード順序についての重要性にも触れられており、アプリケーションが大きくなってきたときに、設定ファイルをどのように管理するのか、ということに対する一般的な解決法についても調べていけたらいいなと思っています。