ここまでのまとめ。
コントローラ
- @Controllerアノテーションが付加されたクラスがコントローラになる。
- @RequestMappingアノテーションで対応するパス(URLのホスト部分より後)を指定する。クラスとメソッドにそれぞれに付加することができる。「クラスに付加された値」+「メソッドに付加された値」が対応するパスとなる。例えばクラスに「@RequestMapping(“/form”)」、メソッドに「@RequestMapping(“text”)」と付加されていた場合、そのメソッドが対応するパスは「/form/text」となる。
- 各メソッドの返り値はString型とし、テンプレートのルートパス(src/main/resources/templates)からの相対パス(ファイル名)を返すようにする。「.html」は省略する。例えば、「return “form/text”」とした場合、「src/main/resources/templates/form/text.html」がテンプレートとして使われるようになる。
- テンプレートに値を渡したい場合、ModelMap型のインスタンスにaddAttributeメソッドを使って値を保存する(とテンプレートで取り出すことができる)。
キーと値のペアで保存する。ModelMap型のインスタンスは、メソッドの引数として指定することで取得することができる。 - フォームからパラメータを受け取りたい場合は、メソッドの引数として指定し@RequestParamアノテーションを付加する。カッコ内はname属性で指定された値を指定する。
ビューテンプレート
- テンプレートはThymeleafで記述する。
- テキストノード(タグで囲まれた部分)にコントローラから受けとった値を埋め込むには、th:text属性をにキーを指定すれば良い。例: <タグ th:text=”${キー}”>埋め込まれる場所</タグ>
- フォームで値を送りたい場合は、formタグを用いる。action属性で、送信先のURL(パス)を指定する。コントローラにおける区別のためにname属性を指定する。