コントローラからビューに値を渡す方法(の1つ)に、ModelMapを使う方法があります。
メソッドの仮引数に、ModelMapを指定することで使えるようになります。
ModelMapのaddAttributeメソッドで、名前と値を指定します。ここでは、messageという名前で「こんにちは」を、diceという名前で1〜6の範囲の乱数をビューに渡します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package net.teachingprogramming.myfirstspringapp.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; /** * TopController */ @Controller @RequestMapping("/") public class TopController { @RequestMapping("sample1") public String sample1() { return "sample1"; } @RequestMapping("sample2") public String sample2(ModelMap modelMap) { modelMap.addAttribute("message", "こんにちは"); int dice = 1 + (int) Math.floor(Math.random()*6); modelMap.addAttribute("dice", dice); return "sample2"; } } |
ビューでは、要素の属性としてth:textを追加します。属性の値は${名前}で指定します。これにより、要素の子要素(タグで囲まれた部分)がコントローラーから渡された値で置き換わります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8" /> <title>sample2</title> </head> <body> <h1>sample2</h1> <p th:text="${message}"> ここに挿入される。 </p> <p> サイコロ:<span th:text="${dice}">サイコロの目</span> </p> </body> </html> |