Spring MVC使用JSR 303进行前端数据检验

简介: 相对于Spring本身的validation框架, JSR 303校验显得更简单,易操作。

相对于Spring本身的validation框架,

JSR 303校验显得更简单,易操作。


关键的两个文件如下:

User.java


package org.fkit.domain;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.Past;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

public class User implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;


	@NotBlank(message="登陆名不能为空")
	private String loginName;
	
	@NotBlank(message="密码不能为空")
	@Length(min=6, max=8, message="密码长度必须在6位到8位之间")
	private String password;
	
	@NotBlank(message="用户名不能为空")
	private String username;
	
	@Range(min=15, max=60, message="年龄必须在15岁到60岁之间")
	private int age;
	
	@Email(message="必须是合法的邮箱地址")
	private String email;
	
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Past(message="生日必须是一个过去的日期")
	private Date birthDate;
	
	@Pattern(regexp="[1][3,8][3,6,9][0-9]{8}", message="无效的电话号码")
	private String phone;

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

}


registerForm.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<head>
	<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
	<title>测试JSR 303</title>
</head>
<body>

<h3>注册页面</h3>
<br>
<form:form action="login" method="post" modelAttribute="user">
	<table>
		<tr>
			<td><label>登陆名: </label></td>
			<td><form:input path="loginName" /></td>
			<td><form:errors path="loginName" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>密码: </label></td>
			<td><form:input path="password" /></td>
			<td><form:errors path="password" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>用户名: </label></td>
			<td><form:input path="username" /></td>
			<td><form:errors path="username" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>年龄: </label></td>
			<td><form:input path="age" /></td>
			<td><form:errors path="age" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>邮箱: </label></td>
			<td><form:input path="email" /></td>
			<td><form:errors path="email" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>生日: </label></td>
			<td><form:input path="birthDate" /></td>
			<td><form:errors path="birthDate" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><label>电话: </label></td>
			<td><form:input path="phone" /></td>
			<td><form:errors path="phone" cssStyle="color:red" /></td>
		</tr>
		<tr>
			<td><input id="submit" type="submit" value="submit"></td>
		</tr>
	
	</table>

</form:form>

</body>
</html>

32855d670415187a4af67bed7333d746201ffcbb
目录
相关文章
|
29天前
|
缓存 前端开发 Java
Spring MVC 面试题及答案整理,最新面试题
Spring MVC 面试题及答案整理,最新面试题
85 0
|
29天前
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
10 0
|
28天前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
23 0
|
28天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
34 1
|
1天前
|
存储 缓存 前端开发
前端如何利用indexDB进行数据优化
使用IndexedDB作为浏览器内置的客户端数据库,用于存储大量数据和实现离线支持。它能缓存常用数据,减少服务器请求,提高用户体验。IndexedDB支持数据索引、复杂查询及版本管理,允许离线操作并同步到服务器。但需熟悉其异步API,可借助Dexie.js、localForage等库简化使用。
|
6天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
19 3
|
6天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
12 1
|
6天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
20 3
|
15天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
22天前
|
敏捷开发 监控 前端开发
Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构
Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构
52 0