Spring の @Valid アノテーションは何を示していますか? 質問する

Spring の @Valid アノテーションは何を示していますか? 質問する

次の例では、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/

おすすめ記事