質問は2つです。
1つめは、両アノテーションの引数についてです。
参考書やネットの情報を見ていますと、
どちらにも文字列の引数が渡されているのを目にします。
この引数は何を指しているのでしょうか?
時にはフォームクラス名であったり、リクエストパラメータ名であったりと、
イマイチ使い方が分かりません。
@InitBinder("form")
public void initBinder(WebDataBinder binder){}
@ModelAttribute("form")
public Form request(){}
@RequestMapping(value="/index",method=RequestMethod.POST)
public String index(@ModelAttribute("form") Form form){}
(処理は省略)
よくこのような例をみかけますが、
引数に指定したモデルの変数名を、@ModelAttributeの引数にする必要が
あるのでしょうか。
また、Controllerには複数の@ModelAttributeメソッドを持つことが可能とも書いてあり、
引数で実行する@ModelAttribute、@InitBinderメソッドを選択できると思っていましたが、
そうではないようです・・・・。
2つ目は、@InitBinderについてです。
@InitBinderを用いた例として下記のような、
日付型に変換する処理が紹介されているのをよく見ます。
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
処理内容は分かるのですが、特定のパラメータ名を明記していないのに、
変換したいパラメータを、指定した形式に変換できているのかが分かりません。
Spring側が自動的に変数名を解釈していたりするのでしょうか?
分かりにくい質問内容かもしれませんが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。