#やること
- 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;
}