springboot+thymeleaf之表单验证

本篇讲述在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,显示:

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以使用Spring Boot和Thymeleaf来实现邮箱验证登录功能。下面是一些基本的步骤: 1. 添加所需的依赖:在您的项目的pom.xml文件中添加Spring Boot和Thymeleaf的依赖项。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 2. 创建一个包含登录表单的HTML页面。您可以使用Thymeleaf模板引擎来渲染页面和处理表单提交。 ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <form action="/login" method="post"> <input type="email" name="email" placeholder="Email" required/> <input type="password" name="password" placeholder="Password" required/> <button type="submit">Login</button> </form> </body> </html> ``` 3. 创建一个控制器类来处理登录请求和验证逻辑。 ```java @Controller public class LoginController { @GetMapping("/login") public String showLoginForm() { return "login"; } @PostMapping("/login") public String login(@RequestParam("email") String email, @RequestParam("password") String password) { // 进行邮箱验证和登录逻辑的处理 // ... return "redirect:/home"; } @GetMapping("/home") public String home() { return "home"; } } ``` 4. 创建一个用于显示登录成功页面的HTML模板。 ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Home</title> </head> <body> <h1>Welcome!</h1> </body> </html> ``` 这只是一个基本的示例,您可能还需要添加更多的逻辑来实现完整的邮箱验证和登录功能。您可以使用Spring Security来处理用户认证和授权,以及使用Java Mail API来发送验证邮件。希望这个简单的示例能帮助您入门。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值