動作概要
<<controller>>
Model
HomeController
"serverTime"
Date
home()
③
(現在の日時)
Dispatcher
ブラウザ
①
Servlet
(ほか色々)
<<jsp>>
/WEB-INF/views/home.jsp
⑥
60
61.
HomeController
DIコンテナにより
自動で読み込まれる
(component-scan)
HTTPメソッドがGETで
@Controller 「/」へアクセスした際に
public class HomeController { 実行される
@RequestMapping(value = "/", method = GET)
public String home(Model model) { Viewに渡したいオブジェクトを
Date date = new Date(); 設定する
model.addAttribute("serverTime", date);
return "home";
}
View名をreturnする
}
※少し手を加えシンプルにしています
61
62.
home.jsp
<html>
<head>
<title>Home</title> Modelに設定したオブジェクトは
</head> 自動的にHttpServletRequestに
設定されている
<body>
<h1>Hello world! </h1>
<p>The time on the server is ${serverTime}.</p>
</body>
</html>
※少し手を加えシンプルにしています
62
引数色々①
// リクエストパラメータを取得(「/person?id=10」などでアクセス)
@RequestMapping(value ="/person", method=GET)
public String showPerson1 (
@RequestParam("id") int id, Model model) {
Person person = findById(id);
model.addAttribute("person", person);
・・・
// URLの値を取得(「/person/10」などでアクセス)
@RequestMapping(value = "/person/{id}", method=GET)
public String showPerson2(
@PathVariable("id") int id, Model model) {
Person person = findById(id);
model.addAttribute("person", person);
・・・
64
65.
引数色々②
// 画面からの入力をマッピング(formからデータを送信)
@RequestMapping(value ="/person", method = POST)
public String registerPerson(@ModelAttribute Person person) {
register(person);
・・・
// ほかにも色々
@RequestMapping("/foo")
public String foo(
Model model, WebRequest req, WebResponse res,
Cookie cookie, Locale locale,
HttpServletRequest sreq, HttpServletResponse sres) {
・・・
65