任何人都可以提供示例 Java 代码,用于通过 Spring MVC 和 thymeleaf-spring4 库验证 HTML 表单(例如:表单属性不为空、最小和最大尺寸)?
最佳答案
最简单的是,您可以使用所需的约束来注释您的 dao
对象(在本例中为用户):
@Entity
public class User
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String login;
@Size(min=2, max=30)
private String firstName;
@Min(18)
private int age;
}
这些注释来自javax.validation.constraints
。
之后你需要修改你的 Controller ,你需要澄清你的 Controller 对象必须是@Valid
:
@RequestMapping(method=RequestMethod.POST)
public String registerUser(@Valid final User user, final BindingResult bindingResult)
{
if (bindingResult.hasErrors()) {
return "form";
}
// Your code
return "redirect:/userList";
}
错误存储在 BindingResult
中。
最后显示错误:
<span th:if="${#fields.hasErrors('login')}" th:errors="*{login}"></span>
编辑:
返回ModelAndView
@RequestMapping(method=RequestMethod.POST)
public ModelAndView registerUser(@Valid final User user, final BindingResult bindingResult)
{
if (bindingResult.hasErrors()) {
ModelAndView mav = new ModelAndView("form");
mav.addObject(bindingResult);
return mav;
}
}
这些是 java 验证 API 的最新 Maven 依赖项
1.依赖 groupId javax.validation artifactId 验证 API 版本 1.1.0.Final
2.依赖 groupId org.hibernate artifactId hibernate-validator 版本 5.0.1.Final
关于java - Spring 4 和 thymeleaf 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191962/