java - Spring 4 和 thymeleaf 表单验证

标签 java spring-mvc thymeleaf

任何人都可以提供示例 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/

相关文章:

spring - 如何使用 Spring RESTful Web 服务处理 CSRF 保护?

jquery - 处理 Thymeleaf Spring MVC AJAX 表单及其错误消息的推荐方法

java - MVC Spring Java - 显示作为类中字段存储的图片

java - Thymeleaf:如何在嵌套列表实体的情况下正确指定 HTML 名称和 Id 属性?

java - 开发类似于 "Google now"的应用程序-是否可以在没有按键输入的情况下使用语音识别?

java - 如何从此 ConcurrentHashMap<String,ConcurrentHashMap<String,ArrayList>> 中删除一个值

java - android项目中文件存储在哪里

java - Maven 看不到 jBehave

java - 比较不同格式的两个日期

java - Spring boot - 无法解析 jsp View