struts2中的validate()方法验证

validate()方法验证
一个ACTION类继承ActionSupport有何用处?
答:在ActionSupport中实现了很多接口,就拿一个来讲,validate()方法,是默认的验证。我们可以在我们的action类中重写一下此方法。比方说验证用户名是否为空。这个方法不需要调用,当S:FORM表单提交了,到了action类中会首先执行此方法。对数据进行验证。
(1)、前台页面

  

(2)、login.action页面
class Login extends ActionSupport{
   private String username;
...//username的set(),get()方法
//execute()方法
public String validate(){
    if("".equals(this.getUsername()) || null == this.getUsername()){
         this.addFieldErro("username","username can't null");//参数1是前台组件名称,后面是提示。此错误信息会在此组件的前面显示这句话
    }

}
(3)、struts.xml文件
输出的错误信息会返回一个input 值。所以XML文件中需要定义一个结果为 input 的结果
/...jsp


例:
在你的的web中加入struts2的jar包支持.
第一步:web.xml:

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

   
        struts2
       
            org.apache.struts2.dispatcher.FilterDispatcher
       

   

   
        struts2
        /*
   

   
        index.jsp
   

第二步:在src下建立struts.xml:

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

   
       
            /index.jsp
            /ok.jsp
       

   

   
 

第三步:建立两个jsp
1.index.jsp:


<%@page language="java" pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>

   
        My JSP 'index.jsp' starting page
   
   
       
           

           

           
       

   

2.ok.jsp:
<%@page language="java" pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>

   
        ok
   
   
    UserName:
    Password:
   

第四步:写出Action
LoginAction:
package com;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport
{
    private String username;
    private String password;

    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 execute() throws Exception
    {
        if("admin".equals(this.getUsername().trim()) && "admin".equals(this.getPassword().trim()))
        {
            return SUCCESS;
        }
        else
        {
            this.addFieldError("username", "UserName or password is wrong!");
            return INPUT;
        }
    }

    @Override
    public void validate()
    {
        if(null == this.getUsername() || "".equals(this.getUsername().trim()))
        {
            //第一个参数表示表单中的textfield的name,第二参数是提示信息
            this.addFieldError("username", "UserName is required!");
        }
        if(null == this.getPassword() || "".equals(this.getPassword().trim()))
        {
            this.addFieldError("password", "Password is required!");
        }
    }

    private static final long serialVersionUID = 4771028725069625041L;

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部