「SpringBoot」@ModelAttributeを使用してバインドを行う

構文
1.クラス ModelAndView
DispatcherServlet によって解決される、ハンドラーによって返されるモデルとビューを表します。

2.public interface BindingResult extends Errors

DataBinder.getBindingResult() メソッドを介して取得された DataBinder の結果ホルダーとして機能します。

3.public void setViewName(@Nullable String viewName)
ViewResolver を介して DispatcherServlet によって解決されるこの ModelAndView のビュー名を設定します。既存のビュー名またはビューをオーバーライドします。

4.public interface Errors

特定のオブジェクトのデータバインディングおよび検証エラーに関する情報を格納および公開します。
boolean hasErrors()
エラーがあった場合に戻ります。

使用例

@RequestMapping("/user")
public ModelAndView user(@ModelAttribute UserBean userBean, BindingResult result, ModelAndView modelView) {
    if (result.hasErrors()) {
        //バインドエラー時
        modelView.setViewName("failure");
            処理コード
        return modelView;
    }
    modelView.setViewName("success");
    return modelView;
}

@ModelAttribute を使用してバインドを行う場合、クラスの後ろに BindingResult というクラスを引数にすることで、バインドが失敗したかどうかを判定します。

Spring Boot

Posted by arkgame