SpringBoot表单验证

SpringBoot的表单验证是通过hibernate-validator.jar的方法实现的
1.创建maven项目,编写pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>

	</parent>

	<groupId>per.czt</groupId>
	<artifactId>13-spring-boot-validate</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>13-spring-boot-validate</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.7</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>

			<scope>test</scope>
		</dependency>

		<!-- spring-boot启动器 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!--thymeleaf-->

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
	</dependencies>
</project>

2.编写Use类

package per.czt.pojo;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

public class User {
	@NotBlank(message="name不能为空")//非空校验
	@Length(min=2,max=6,message="最小长度为2,最大长度为6")
	private String name;
	@NotEmpty//不会去掉首尾空格
	private String password;
	
	@Min(value=0)
	@Max(value=120)
	private Integer age;
	@NotBlank(message="邮箱不能为空")
	@Email
	private String email;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	@Override
	public String toString() {
		return "User [name=" + name + ", password=" + password + ", age=" + age + ", email=" + email + ", getName()="
				+ getName() + ", getPassword()=" + getPassword() + ", getAge()=" + getAge() + ", getEmail()="
				+ getEmail() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()="
				+ super.toString() + "]";
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	

}

@NotBlank:字符串非空检验,去掉两边空字符
@NotEmpty("):字符串非空检验
@Length(min=1,max=2) 字符串长度检验
数字最大值最小值检验
@Max
@Min
邮箱检验
@Email
而且可以自己定义错误信息,括号里加message=”“,如@Max(value=1,message=“最小值为空”)
3.编写UserController

package per.czt.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import per.czt.pojo.User;

@Controller
@RequestMapping("/user")

public class UserController {
	@RequestMapping("/add")
	public  String showAddPage(@ModelAttribute("user1") User user) {
		return "add";
	}
	/*
	 * 
	 *@Valid:开启对use对象的数据校验
	 *BingingResult:封装了校验结果
	 */
	
	@RequestMapping("/save")
	public  String saveUser(@ModelAttribute("user1") @Valid User user,BindingResult result ) {
		System.out.println(user);
		System.out.println(result);
		//如果校验失败
		if(result.hasErrors())
		{
			return "add";
			
		}else {//如果校验成功
			
			return "ok";
		}
		
	}


}

@ModelAttribute如果不自己定义即为类的小写开头如,Users,默认为users,在视图中接收到的就是${users}
4,编写view层
add.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
	<form th:action="@{/user/save}" method="post">
		用户姓名:<input type="text" name="name" /><font th:errors="${user1.name}"></font><br/>
		用户密码:<input type="password" name="password"/><font th:errors="${user1.password}"></font><br/>
		用户年龄:<input type="text" name="age" /><font th:errors="${user1.age}"></font><br/>
		用户邮箱:<input type="text" name="email" /><font th:errors="${user1.email}"></font><br/>
		<input  type="submit" />
	</form>
</body>
</html>

ok.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
	<span th:text="${user1.name}"></span>
	<span th:text="${user1.password}"></span>
	<span th:text="${user1.age}"></span>
	<span th:text="${user1.email}"></span>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值