springmvc中数据校验

java中提出了一个标准jsr303是jdk提供的api,也就是一些接口.JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator.可以使用注解的方式进行验证.你可以通过http://jcp.org/en/jsr/detail?id=303了解JSR 303的详细内容。

JSR 303 基本的校验规则:

限制说明
@Null限制只能为null
@NotNull限制必须不为null
@AssertFalse限制必须为false
@AssertTrue限制必须为true
@DecimalMax(value)限制必须为一个不大于指定值的数字
@DecimalMin(value)限制必须为一个不小于指定值的数字
@Digits(integer,fraction)限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future限制必须是一个将来的日期
@Max(value)限制必须为一个不大于指定值的数字
@Min(value)限制必须为一个不小于指定值的数字
@Past限制必须是一个过去的日期
@Pattern(value)限制必须符合指定的正则表达式
@Size(max,min)限制字符长度必须在min到max之间
@Past验证注解的元素值(日期类型)比当前时间早
@NotEmpty验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于
@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

例:在使用的时候直接对JavaBean进行注解既可以实现对属性的验证

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'reg.jsp' starting page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript">
		function checkSubmit() {
			document.forms[0].submit();
		}
	</script>
  </head>

<body>
	<h2>用户注册</h2>
	<form action="<%=path%>/reg" method="post">
		用户名:<input type="text" name="userName" /><font color="red"><form:errors path="userInfo.userName"></form:errors></font><br /><br />
		 密码:<input type="password" name="password" /><font color="red"><form:errors path="userInfo.password"></form:errors></font><br><br />
		确认密码:<input type="password" name="repassword" /><font color="red"><form:errors path="userInfo.repassword"></form:errors></font><br><br />
		邮箱:<input type="text" name="email" /><font color="red"><form:errors path="userInfo.email"></form:errors></font><br /><br />
		年龄:<input type="text" name="age" /><font color="red"><form:errors path="userInfo.age"></form:errors></font><br /><br />
		手机号码:<input type="text" name="phone" /><font color="red"><form:errors path="userInfo.phone"></form:errors></font><br /><br />
		<input type="button" value="注册" οnclick="checkSubmit()" /><br /><br />
		<br />
	</form>
</body>
</html>


 
 

在maven中引用jar包

<dependency>
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-validator</artifactId>
    <version>4.3.2.Final</version>
</dependency>

创建类

public class UserInfo {
	/**
	 * 声明式
	 * NotNull 属性名!=null
	 * NotEmpty 属性名!=null && !属性名.equals("")
	 */
	@NotEmpty(message="用户名不能为空")
	private String userName;
	
	@NotEmpty(message="密码不能为空")
	private String password;
	
	@NotEmpty(message="确认密码不能为空")
	private String repassword;
	
	@Pattern(message="邮箱格式不正确",regexp=".+@.+\\..+")
	private String email;
	
	@NotEmpty(message="年龄不能为空")
	@Min(value=1,message="年龄必须大于1")
	@Max(value=100,message="年龄必须小于100")
	private String age;
	
	@NotEmpty(message="手机不能为空")
	@Size(min=11,max=11,message="手机号必须是十一位")
	private String phone;

	//set和get方法



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值