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

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值