26
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Spring】bindingResultを手動で操作する。

Last updated at Posted at 2019-05-25

#やること

  • BindingResultをController側で操作する際のコードを書く。
  • 本当は自作のバリデータを用意すべきだが、納期的に厳しいので。

エラーを追加する。

    // フィールドのエラーを表し、Formクラス名,フィールド名,エラーメッセージを渡す。
    // getObjectNameではフォームクラス名が取得できる。
    FieldError fieldError = new FieldError(bindingResult.getObjectName(), "fieldName", "エラー");
    
    // エラーを追加する。
    bindingResult.addError(fieldError);

エラーメッセージを取得する。

    public String addAllErrors(BindingResult result) {
        String errorMessages = "";
        for (ObjectError error : result.getAllErrors()) {
            // ここでメッセージを取得する。
            errorMessages += error.getDefaultMessage();
        }
        return errorMessages;
    }

アノテーションなしに行ったすべてのエラーをBindingResultに追加する。

	public static BindingResult addAllErrors(BindingResult bindingResult, Map<String, String> errorMap) {
		for (Map.Entry<String, String> entry : errorMap.entrySet()) {
			FieldError fieldError = new FieldError(
                           bindingResult.getObjectName(), entry.getKey(), entry.getValue());
		    bindingResult.addError(fieldError);
		}
		return bindingResult;
	}


26
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?