SpringMVC バリデーション
- MVCの基本構造
研修としては二日目。アウトプットで学習効率が高まるとのことで開始する。
課題1はMVCの基本構造を学んだ。
Model、View、Controllerの3つからなる。
Model データの入れ場所。データ型定義とアクセサー。そのうちDBともやり取りするらしい。
View JSPという拡張子のHtml複合体を知った。tr,tdの作成がとにかく手間。
Controller MとVの橋渡しとなり、クライアントからのリクエストに対しどうレスポンスをするのか記述している。
覚えている技術書き出し
アノテーション
MVCの中核。@アノテーション名、次の行あるいは引数をつけて適用される。
プロパティだったりメソッドだったりが詰まっている。
Model
Eclipseではアクセサーを右クリ>ソース>生成で自動作成できる。楽だ・・・。
View
<form:form></form>
<form:input path="Modelに用意したフィールド" />
<form:select path="" label="表示文字" value="選択時の内部データ" />
基本的にはpathにModelで作成したフィールドを入れることで繋げる。
labelとvalueはController側で作るので割愛。
また、Controllerで指定したキーをJSP側で取得するためにはEL式の${sample}で取り出せる。
例えば、変数.addAttribute("キー",getメソッド)で指定しているのであれば、getメソッドで引っ張れた値をそこに入力できる。
Controller
・@Controller 冒頭のクラス名の上につけることでMainと同じ扱いになる。
@RequestMapping( value="/url" RequestMethod=GET ) public String init(@ModelAttribute Modelデータ型 変数,Model model) 変数.addAttribute("キー",getメソッド) return "JSP名";
・@RequestMapping クライアントからのRequestを紐づけ(Mapping)する。引数に/urlとRequestMethod=GETorPOSTをつけられる。
・@ModelAttribute 引数にいるかメソッドにいるかで動きが違うらしいがまだ良くわからない。addAttributeを使うためのものと認識している。
・変数.addAttribute キーはMのフィールド。その次でそのフィールドアクセサーとで取得。
明日はバリデーションの課題である。