単一のコントローラー内に複数の initBinder メソッドを持つことは可能でしょうか? 各 InitBinder() (コードを参照) が一意のリクエスト ハンドラーに依存する場所、たとえば initBinder() は URL: "/update/account" で呼び出され、initBinderOne() は "update/account/pass" で呼び出されますか?
複数のコントローラーではなく、すべての更新に対して単一のコントローラーを使用することをお勧めします。お知らせ下さい。
@Controller
@RequestMapping(value="/uodate/account")
public class UpdateController {
@RequestMapping(method=RequestMethod.GET)
public String updateAccount(@ModelAttribute("account") Account account...){
..
}
@RequestMapping(method=RequestMethod.POST)
public String update(@Valid Account account...){
...
}
@RequestMapping(value="/pass", method=RequestMethod.GET)
public String updatePass(@ModelAttribute("account") Account account...){
...
}
@RequestMapping(value="/pass",method=RequestMethod.POST)
public String updatePass(@Valid Account account...){
...
}
@InitBinder("account")
public void initBinder(WebDataBinder binder){
binder.setValidator(validateAccount);
binder.setAllowedFields(new String[]{"accountId","accountname","firstName",
"lastName","address"});
}
@InitBinder("account")
public void initBinderOne(WebDataBinder binder){
binder.setValidator(validatePassword);
binder.setAllowedFields(new String[]{"accountId","password});
}