您的位置:首页 > 编程语言 > Java开发

SpringMVC的服务器验证二(注解方式实现)

2017-02-10 14:40 441 查看

SpringMVC注解方式的服务器验证:

常用的注解验证注解配置:


1. 导入验证需要的jar包。

与springmvc的服务器验证一样。

案例:用户登录时的服务器验证,当账号和密码有空时,服务器会精确提示给用户账号为空或者密码为空;当两者都不为空,通过验证。

注解方式实现:在控制层不需要给控制层类 写
/**

* 给这个类绑定一个验证类

* @param binder

*/

@InitBinder

public void initBinder(DataBinder binder){

binder.setValidator(new MyValidate());

}


2. javabean的注解配置

以user为例:注解写在getter方法上也可以写在属性上(自己试)

javabean的注解配置的目的:当springMVC封装数据时,会进行验证,message中为错误信息 — 以user为类,当springMVC把客户端传来的数据封装成user时,会进行验证

public class User {
private int id;
private String username;
private String password;
private String email;
private int age;
private double score;

//xxx@xxx.com
@NotEmpty(message="邮箱不能为空")
@Email(message="邮箱格式不正确")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Range(max=120,min=0,message="年龄错误")
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@DecimalMax(value="99.9")
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//@NotNull(message="用户名不为空") //只验证  username!=null
//@NotEmpty(message="用户名不为空") //验证  username!=null  和    username!=""
@Pattern(regexp="^[a-zA-Z]\\w{5,13}$",message="用户名不符合规则")
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}


3.控制层上:在需要验证的方法的bean上加上注解 @Valid

加@valid指定特定的方式需要进行服务器验证



**4.客户端获取服务器验证的错误信息(错误信息在步骤2的注解配置message中)**


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/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 'index.jsp' starting page</title>
<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">
</head>

<body>
<form:form action="login" commandName="user" >
<form:input path="username"/>
//根据userBean的属性获取错误信息
<form:errors path="username"></form:errors> <br/>
<form:password path="password"/>
//根据userBean的属性获取错误信息
<form:errors path="password"></form:errors><br/>
<form:button>提交</form:button>
</form:form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: