SpringBoot服务端表单数据校验

SpringBoot服务端表单数据校验

实现添加用户功能

实体类

public class Users {

	private String name;
	private String password;
	private Integer age;
	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;
	}
	@Override
	public String toString() {
		return "Users [name=" + name + ", password=" + password + ", age=" + age + "]";
	}
	

Controller

@Controller
public class UserController {

	@RequestMapping("/{page}")
	public String turnPage(@PathVariable String page) {
		return page;
	}
	
	@RequestMapping("/save")
	public String save(Users users) {
		System.out.println(users);
		return "success";
	}
	
}

添加页面

<form th:action="@{/save}" method="post">

用户名:<input type="text" name="name" /><br/>
密码:<input type="password" name="password" /><br/>
年龄:<input type="text" name="age" /><br/>
<input type="submit" value="确定" />

SpringBoot对表单做数据校验

1、技术特点

使用了Hibernate-validate校验框架

步骤:

在实体类中添加校验规则

	@NotBlank //非空校验
	private String name;
	@NotBlank //非空校验
	private String password;

在Controller中开启校验

/**
	 * @param users
	 * @param result
	 * @Valid 开启对Users对象的校验
	 * BindingResult 封装了校验的结果
	 * @return
	 */
	@RequestMapping("/save")
	public String save(@Valid Users users ,BindingResult result) {
		if(result.hasErrors()) {
			return "index";
		}
		System.out.println(users);
		return "success";
	}

显示校验信息

用户名:<input type="text" name="name" /><font color="red" th:errors="${users.name}">用户名不能为空</font><br/>
密码:<input type="password" name="password" /><font color="red" th:errors="${users.name}">密码不能为空</font><br/>

解决异常

/**
	 * 解决异常:
	 * 在跳转页面的方法中注入Users对象
	 * 注意:由于SpringMVC会将放入到Model中传递,key的名称会使用该对象名称的驼峰式来命名
	 * 例如:Users----->users
	 * 
	 * 也可以用@ModelAttribute("a")讲key改为a。
	 * @param page
	 * @param users
	 * @return
	 */
	@RequestMapping("/{page}")
	public String turnPage(@PathVariable String page,Users users) {
		return page;
	}

其他检验规则

@NotBlank:判断字符串是否为null,或是空串(去掉收尾空格)

@NotEmpty:判断字符串是否为null,或是空串

@Length:判断字符串长度(min,max)

@Min:判断数值最小值

@Max:判断数值最大值

@Email:判断邮箱格式是否合法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值