一、为什么要进行验证?

验证几乎是注册登录的必须前提,验证的主要作用有两点:

1、安全性

2、对用户提供差异化服务。

 

二、如何验证?

ActionSupport类中有一个validate()方法,这是为开发者使用struts提供的一个接口,初始时是没有任何验证的。所以要使用此方法首先要进行重写该方法。

举注册为例,调用顺序为setUsername()方法--》validate()方法--->register()方法。所以一旦验证不过那么将无法执行后续方法,即后面的功能将被隔离!

三、实例:

UserAction.java

package com.amos.web.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @ClassName: UserAction
 * @Description: 用户管理,将相关的action封装到一个类中
 * @author: amosli
 * @email:amosli@infomorrow.com
 * @date Jan 8, 2014 1:06:00 AM
 */
public class UserAction extends ActionSupport {
    private static final long serialVersionUID = -6275534406709255984L;
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        System.out.println("执行setUserName()方法!");
        if (username != null & username.trim().length() > 0) {
            this.username = username;
        }

    }

    public String getPassword() {
        return password;
    }

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

    // 检验方法
     public void validate() {
     System.out.println("执行validate()方法!");
     if (username != null && username.trim().length() > 0) {
    
     }else{
     this.addFieldError("username", "用户名为必填!");
     }
    
     if (password != null && password.trim().length() > 0) {
    
     }else{
     this.addFieldError("password", "密码为必填!");
     }
     }
    // 用户注册
    public String register() throws Exception {
        System.out.println("执行注册方法!");
        return "toRegisterJsp";
    }

    // 用户登录
    public String login() throws Exception {
        System.out.println("执行登录方法!");
        return "toLoginJsp";
    }

}
View Code

相关文章: