Не удается получить валидацию с помощью Spring Boot and Thymeleaf

У меня есть приложение загрузки Spring (с использованием версии 1.2.3) с 1 контроллером, который показывает форму. Все это прекрасно работает, но теперь я хочу добавить подтверждение. У меня есть этот метод в контроллере:

@RequestMapping(value = "/licensing", method = RequestMethod.POST)
public String doRegistration( @Valid CustomerLicenseRegistration customerLicenseRegistration, Model model, BindingResult bindingResult )
{
    if( bindingResult.hasErrors())
    {
        logger.debug( "There are errors! {}", bindingResult );
        return "customer/license-registration";
    }
    logger.debug( "customerLicenseRegistration: " + customerLicenseRegistration );
    CustomerLicense customerLicense = m_licenseService.createCustomerLicense( customerLicenseRegistration );
    model.addAttribute( "customerLicense", customerLicense );
    return "customer/license-registration-done";
}

Если я сейчас напечатаю что-то недействительное, я получаю "страницу ошибок Whitelabel" после отправки, и моя точка останова внутри метода никогда не ударяется (если я удалю аннотацию @Valid, точка останова попадет). На странице с ошибкой отображается:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Mon May 18 09:42:27 CEST 2015
There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='customerLicenseRegistration'. Error count: 1

Spring, похоже, заметил, что объект недействителен, но он еще не отображает форму, чтобы пользователь мог исправить свою ошибку. Что я делаю неправильно?

Ответы

Ответ 1

Нашел ответ из учебника здесь. Я должен изменить свою подпись метода:

public String doRegistration( @Valid CustomerLicenseRegistration customerLicenseRegistration, 
Model model, 
BindingResult bindingResult )

в

public String doRegistration( @Valid CustomerLicenseRegistration customerLicenseRegistration, 
BindingResult bindingResult, 
Model model )

Обратите внимание, что BindingResult должен быть сразу после объекта, который я аннотировал с помощью @Valid.