javax 验证约束在 Spring Boot 中不起作用
2022-09-04 05:25:27
我无法在我的Spring Boot应用程序中获取诸如@NotEmpty,@NotBlank和@NotNull之类的注释。
我遵循了这个(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,但同样的事情发生了。我的屏幕不验证输入,并允许保存具有空 collegeCode 的 college 对象。
有趣的是,如果我将我的POJO更改为使用已弃用的Hibernate验证程序......
import org.hibernate.validator.constraints.NotBlank;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class College
{
@NotBlank
private String collegeCode;
.
.
.
...然后验证确实触发,屏幕阻止我使用空的学院代码保存学院对象。
谁能告诉我为什么我的验证在使用javax.validation.constraints验证器时不起作用?