版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16855077/article/details/84968919
springboot使用了hibernate-validator的校验框架
1.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>
<groupId>com.cloudtech</groupId>
<artifactId>01-springboot-hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath />
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis启动器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
<!-- 增加thymeleaf坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--通用Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<!--pageHelper分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
</project>
2 代码
adduser.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form th:action="@{/user/addUser}" method="post">
userName:<input type="text" name="userName"/>
<font color="red" th:errors="${user.userName}"></font>
<br/>
sex:<input type="text" name="sex"/>
<font color="red" th:errors="${user.sex}"></font>
<br/>
<input type="submit" value="提交"/> <br/>
</form>
</body>
</html>
UserController.java
package com.cloudtech.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 com.cloudtech.entity.Role;
import com.cloudtech.entity.User;
/**
* 角色控制器
* @ClassName: UserController
* @Description:
* @author wude
* @date 2018年12月12日
*
*/
@Controller
@RequestMapping("/user")
public class UserController {
/**
* 解决异常的方法:在跳转页面的时候增加注入一个User对象
* 该对象会被spring mvc注入到model中,使用驼峰规则
*
* 如果传递的对象想修改名称,可以通过@ModelAttribute("aa")
* @param user
* @return
*/
@RequestMapping("/test")
public String test(/*@ModelAttribute("aa")*/ User user){
return "adduser";
}
/**
* 增加角色信息
* @@Valid 开启对user对象的校验
* @param role
* @result BindingResult封装勒校验的结果
* @return
*/
@RequestMapping("/addUser")
public String addUser(@Valid User user,BindingResult result){
if(result.hasErrors()){
return "adduser";
}
System.out.println(user.toString());
return "ok";
}
}
user.java
package com.cloudtech.entity;
import javax.validation.constraints.NotBlank;
public class User {
@NotBlank //非空校验
private String userName;
@NotBlank //非空校验
private String sex;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public User(String userName, String sex) {
super();
this.userName = userName;
this.sex = sex;
}
@Override
public String toString() {
return "User [userName=" + userName + ", sex=" + sex + "]";
}
public User() {
super();
// TODO Auto-generated constructor stub
}
}
3 测试
4.其他校验
package com.cloudtech.entity;
import javax.validation.constraints.NotBlank;
public class User {
@NotBlank(message="用户不能为空!") //非空校验
private String userName;
@NotBlank(message="性别不能为空!") //非空校验
private String sex;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public User(String userName, String sex) {
super();
this.userName = userName;
this.sex = sex;
}
@Override
public String toString() {
return "User [userName=" + userName + ", sex=" + sex + "]";
}
public User() {
super();
// TODO Auto-generated constructor stub
}
}
@NotBlank: 判断字符串是否为 null 或者是空串(去掉首尾空格)。
@NotEmpty: 判断字符串是否 null 或者是空串。
@Length: 判断字符的长度(最大或者最小)
@Min: 判断数值最小值
@Max: 判断数值最大值
@Email: 判断邮箱是否合法