ограничения проверки подлинности javax не работают в Spring Boot - PullRequest
0 голосов
/ 10 июня 2019

Я не могу получить аннотации, такие как @NotEmpty, @NotBlank и @NotNull для запуска в моем приложении Spring Boot.

Я следовал этому (maven) примеру:

https://spring.io/guides/gs/validating-form-input/

... и я не вижу, что я делаю неправильно.

POJO:

import javax.validation.constraints.NotBlank;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class College
{    
    @NotBlank
    private String collegeCode;
.
.
.

Пружинный контроллер:

@RequestMapping(value="/addCollege", method = RequestMethod.POST) 
public String addCollege(@Valid @ModelAttribute("college") College college, BindingResult bindingResult, Model model, HttpSession session)
{
    if(bindingResult.hasErrors()) //this is never true
    {
        logger.debug("Errors when adding new college!!!");
        return "admin/colleges/addCollege";
    }
    collegeProcessor.saveCollege(college);
    return getAllColleges(model, session);
}

Экран:

<form action="#" th:action="${addOrEdit} == 'add' ? @{/addCollege} : @{/updateCollege}" th:object="${college}" method="post">

    <table class="table">

        <tr>
            <td>College Code</td>
            <td><input size="10" name="collegeCode" th:field="*{collegeCode}"/></td>
            <div id="errors" th:if="${#fields.hasErrors('collegeCode')}" th:errors="*{collegeCode}"></div>
        </tr>
.
.
.

Как и @NotBlank, я пробовал @NotEmpty и @NotNull, но происходит то же самое.Мой экран не проверяет вводимые данные и позволяет сохранить объект колледжа с пустым кодом колледжа.

Интересно то, что если я заменил свой POJO на использование устаревшего валидатора Hibernate ...

import org.hibernate.validator.constraints.NotBlank;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class College
{
    @NotBlank
    private String collegeCode;
.
.
.

... тогда проверка СДЕЛАЕТСЯ, и экран не позволяет мне сохранить объект College с пустым кодом COCED.

Может кто-нибудь сказать мне, почему моя проверка не работает при использовании javaxвалидаторы .validation.constraints?

1 Ответ

0 голосов
/ 10 июня 2019

Пожалуйста, добавьте bean MethodValidationPostProcessor в ваш контекст

 @Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
    return new MethodValidationPostProcessor();
}
...