欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot+thymeleaf之表单验证

程序员文章站 2022-05-10 19:04:29
...

本篇讲述在spring boot框架中使用thymeleaf库实现表单提交。

1 新建thymeleaf工程

使用IDEA的spring initialize向导新建spring boot工程,选择库web和thymeleaf,这样生成的工程中的pom.xml中包含web和thymeleaf的依赖。并会在main/resouce下生成templates文件夹。

2 新建User实体,使用validator对信息进行验证

package com.example.formvalidate;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;

public class User {
    private int id;

    @NotEmpty(message="用户名不能为空")
    private String username;

    @NotEmpty(message="密码不能为空")
    @Length(min=6, message="密码长度不能少于六位")
    private String password;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

3 新建控制器LoginController

LoginContrller控制器包含有俩个Mapping注解,/index注解引导用户到index.html,/login注解首先用@Valid捕捉错误信息,然后打印登录结果信息。

package com.example.formvalidate;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.validation.Valid;
import java.util.List;

@Controller
public class LoginController {
    @RequestMapping(value="/index")
    public String index() {
        return "index";
    }
    @RequestMapping(value="/login")
    public @ResponseBody
    User login(@Valid User user, BindingResult result, Model model) {
        if (result.hasErrors()) {
            List<ObjectError> error = result.getAllErrors();
            for (ObjectError e : error) {
                System.out.println(e);
            }
            return null;
        }
        return user;
    }
}

4 在templates文件夹下新建index.html文件

表单提交相应的页面就是上面控制器中的/login路径。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title>Insert title here</title>
</head>
<body>
<form action="login" method="post">
    <p>姓名:<input type="text" name="username"/>
    </p>
    <p>密码:<input type="password" name="password"/>
    </p>
    <p><button>提交</button>
    </p>
</form>
</body>
</html>

5 测试

运行项目,打开http://localhost:8080/index,显示:

springboot+thymeleaf之表单验证

输入用户名,和密码,用户名不能为空,密码不能少于6位,然后按提交,将会显示:

springboot+thymeleaf之表单验证

如果用户名或密码验证错误,将会在控制台打印错误信息。