Для чего используется BindingResult в java?

Хоть и ознакомился с оффициальной документацией Spring'а но не врубился в мотивацию и цель этого интерфейса.
Для чего данный он используется и в каких случаях он может пригодиться?
  • Вопрос задан
  • 3223 просмотра
Решения вопроса 1
EugeneP2
@EugeneP2
Java Dev
Из него мы можем узнать были ли ошибки валидации и какие при байденге http запроса на объект в контроллере

Например, вот такой у нас контроллер
@Controller
public class SearchCommentController {

	...................

	@RequestMapping(method = RequestMethod.POST)
	public String displayCommentAlert(@Validated FormParams params, BindingResult bindingResult, Model model) {
		if (bindingResult.hasErrors() == false) {
			List<CommentWithPeopleDetail> foundComments = commentDao.find(params);
			model.addAttribute("foundComments", foundComments);
		}
		return "commentAlert";
	}

	...................
}


bindingResult инжектится спригом в метод контроллер

вот валидатор
public class SearchCommentParamValidator implements Validator {

	@Override
	public boolean supports(Class<?> clazz) {
		return FormParams.class.isAssignableFrom(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {

		FormParams params = (FormParams) target;

		if (StringUtils.isBlank(params.getRuleId()) && StringUtils.isBlank(params.getRef())) {
			errors.reject(null, "Необходимо указать или 'ID правила', и/или 'Объект алерта'!");
		} else if (params.getDateFrom() == null || params.getDateTo() == null) {
			errors.reject(null, "Необходимо указать период поиска!");
		}
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы