struts2数据校验

表单数据的验证:

前台验证:主要是通过JS验证, 表达数据是否合法!
后台验证:通过后台java代码进行验证!
Struts也提供了数据效验的方式!

Struts数据效验, 通过拦截器完成:
name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>

代码方式验证Action中所有的方法:

1.在idea中直接创建struts项目
2.写注册页面
3.UserAction.java
4.以及实体类User.java
5.配置struts.xml

文件目录结构
struts2数据校验_第1张图片
图片.png
  • 注册页面
<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2017/5/31
  Time: 12:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    注册页面


用户名:
密码:
邮箱:
生日:
  • 实体类User.java
package validation;

import java.util.Date;

/**
 * Created by admin on 2017/5/31.
 */
public class User {

    private String userName;
    private String passWord;
    private String email;
    private Date birth;

    @Override
    public String toString() {
        return "User{" +
                "userName='" + userName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", email='" + email + '\'' +
                ", birth=" + birth +
                '}';
    }

    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;
    }

    public String getEmail() {
        return email;
    }

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

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }
}
  • action类UserAction
package validation;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by admin on 2017/5/31.
 */
public class UserAction extends ActionSupport {

    //封装数据
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    //数据校验
    public void validateRegister() {//验证指定的方法
        //用户名
        if (user.getUserName() == null || "".equals(user.getUserName())) {
            super.addFieldError("userName", "用户名不能为空!");
        }

        //密码
        if (user.getPassWord() == null || "".equals(user.getPassWord())) {
            super.addFieldError("passWord", "密码不能为空!");
        }
    }

    //业务处理方法
    public String register(){
        System.out.println(user);
        return SUCCESS;
    }
}
  • struts.xml配置
    1.配置数据效验过滤器validate.xml





    
        
            /register.jsp
        
    

2.在struts.xml中引入数据校验配置文件






    

XML方式验证Action中所有的方法:

总结代码方式验证:

  • 繁琐,设计很多重复的验证逻辑!例如:非空验证、数值验证、email、日期等。
  • Struts对于常用的验证,进行了封装,即提供了验证器, 验证指定的常用业务逻辑!

可以在jar包里找到该文件,其路径为:\struts04\lib\xwork-core.jar!\com\opensymphony\xwork2\validator\validators\default.xml

在struts里面提供了所有通用的验证器






    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


创建一个xml验证器,需要遵循一定的验证规则

  • xml文件名称语法:ActionClassName-validation.xml
    注意:此xml需要与当期要验证的action在同一个目录:
    举例:UserAction-validation.xml
  • 例子





    
    
        
        
            
            用户名不能为空!
        
    

    
    

        
        
            密码不能为空!
        

        
        
            6
            8
            密码必须为6-8位!
        
    

    
    
        
            日期格式不对!
        
    

    
    
        
            邮箱格式错误!
        
    

验证:
当不遵循格式随意输出时:

struts2数据校验_第2张图片
图片.png

控制台就会出现错误:

struts2数据校验_第3张图片
图片.png

当遵循格式输出时:

struts2数据校验_第4张图片
图片.png

控制台显示的结果为:

struts2数据校验_第5张图片
图片.png

你可能感兴趣的:(struts2数据校验)