Page List

Search on the blog

2014年1月21日火曜日

Spring MVCの勉強

 会社でSpring MVCを使うことになりそうです。せっかくなので、家でも勉強していこうかなと思います。

以下勉強録&メモ書きです。

1日目: Hello World
まず、もっとも簡単なサンプルを動かしてみました。
以下のサイトが簡単でした。

Spring 3 MVC Hello World Example

ちょっとだけ詰まったところをメモ。
  • Eclipse上で動的WEBプロジェクトをMavenプロジェクトにするときは、まずDynamic Web Projectを新規作成して、そのあとConvert to Maven Projectする。
  • Tomcatのクラスパスにmaven dependenciesを加える方法はここを参照。
  • 上ページのとおりのURLでアクセスするためには、Tomcatに載せたModuleのPathは"/SpringMVC"とする。
Spring + Strutsの連携より設定がかなり簡単でした。ControllerがPOJOなのはシンプルでいいなと思いました。

2日目: Form Handling
フォームを使ったサンプルアプリケーションの実装をしました。

Spring MVC Form Handling Example

シンプルで分かりやすかったです。
@ModelAttributeを使っていますが、このサンプルでは無くても動きます。
@ModelAttributeの使い方は下(2つ目の箇条書き)にメモっておきます。
  • DispatchするJSP内で(Spring提供のtaglib)を使う場合は、model名を"command"にしなければならない。
  • @ModelAttributeアノテーションを使うとフォームモデルの名前を変更できる。アノテーションをつけないとデフォルトで型名から名前が付けられる。今回の例だとアノテーションをつけない場合、JSPから${student.id}のようにしてフォームモデルを参照できる。@ModelAttribute("hoge")を付与すると、${hoge.id}のようにしてアクセスできるようになる。
自動でいろいろやってくれるので便利な反面、何がどうなってその値が取得できるのかが分かり辛いです(慣れの問題だと思いますが)。

3日目: TilesとLogging
下のページをやってみました。

Tutorial: Spring 3 MVC Tiles Integration with Example in Eclipse. Tiles Spring Tutorial

Tilesは一貫したLook and Feelを保つためのテンプレートシステムらしいです。
header, menu, footerなどを部品化することが出来て便利です。
なんと、こんなのがあったのですか。手動でjspインクルードしてましたよ。

すぐ出来たので、サンプルのsystem.out.printのところをloggerで出すようにしてみました。
以下メモです。
  • Tilesを使ったビューの表示では、controllerが返すviewの名前とtiles.xmlのname属性が一致しているところに注目。ここでマッチングを行っている。
  • ログのfacadeはSLF4Jを使ってみた。src直下にlog4j.xmlを置けばそれだけでロガーが使えた。

0 件のコメント:

コメントを投稿