次の例では、ScriptFile
パラメータに注釈が付けられています@Valid
。
注釈は何@Valid
をするのですか?
@RequestMapping(value = "/scriptfile", method = RequestMethod.POST)
public String create(@Valid ScriptFile scriptFile, BindingResult result, ModelMap modelMap) {
if (scriptFile == null) throw new IllegalArgumentException("A scriptFile is required");
if (result.hasErrors()) {
modelMap.addAttribute("scriptFile", scriptFile);
modelMap.addAttribute("showcases", ShowCase.findAllShowCases());
return "scriptfile/create";
}
scriptFile.persist();
return "redirect:/scriptfile/" + scriptFile.getId();
}
ベストアンサー1
検証のためです。
検証 ユーザー入力をモデルにバインドした後、そのモデルを検証するのが一般的です。Spring 3 は、JSR-303 による宣言的検証をサポートしています。このサポートは、Hibernate Validator などの JSR-303 プロバイダーがクラスパスに存在する場合、自動的に有効になります。有効にすると、コントローラー メソッド パラメーターに @Valid アノテーションを付けるだけで検証をトリガーできます。受信 POST パラメーターをバインドした後、AppointmentForm が検証されます。この場合は、日付フィールド値が null でなく、将来発生することを確認します。
詳細については、こちらをご覧ください:
http://blog.springsource.com/2009/11/17/spring-3-type-conversion-and-validation/