struts註冊信息驗證的實現描述附帶代碼

 

struts註冊信息驗證的實現描述附帶代碼

 

今天我們主要是簡單的學習了一些struts2的校驗,在課堂上根據老師帶領寫的一個登錄功能的校驗的實現,自己寫了一個註冊功能的校驗。使用了正則表達式來完成相應的校驗。

 

首先我們先來看一下程序顯示的效果,如下圖所示:

點擊註冊按鈕後,這幾項都不符合我們自定的規則,所以會出現下面的結果~

 

下面我們來看以下代碼分析:

首先我用重寫validateXxx()方法來完成的。

ValidateXxx()方法中,其中xxx是Action對應的處理邏輯方法。

下面是對Action增加reg,並增加validateReg()方法。代碼如下

 

import java.util.Calendar;

import java.util.Date;

import java.util.regex.Pattern;

import com.opensymphony.xwork2.ActionSupport;

 

public class RegAction extends ActionSupport{

   

    private String uname;

    private String upass;

    private Integer uage;

    private Date ubirth;

    public String getUname() {

       return uname;

    }

    public void setUname(String uname) {

       this.uname = uname;

    }

    public String getUpass() {

       return upass;

    }

    public void setUpass(String upass) {

       this.upass = upass;

    }

    public Integer getUage() {

       return uage;

    }

    public void setUage(Integer uage) {

       this.uage = uage;

    }

    public Date getUbirth() {

       return ubirth;

    }

    public void setUbirth(Date ubirth) {

       this.ubirth = ubirth;

    }

    //重寫validateReg方法,該方法僅校驗Reg處理邏輯

   

    public void validateReg() {

       //判斷

       //如果用戶名不爲空,且不匹配長度爲4~25的字母和數字組成的字符串

       System.out.println(uname);

       if(uname==null || !uname.trim().matches("[a-zA-Z0-9]{4,25}")){

           System.out.println(uname);

           addFieldError("uname","您輸入的用戶名必須是由字母和數字組成,並且長度必須是4~25之間!");

       }

       //如果密碼不爲空,切長度不匹配4~25的字母和數字組成的字符串

       if(upass==null ||!Pattern.matches("\\w(4,25)",upass.trim())){

           addFieldError("upass","您輸入的密碼必須是字母和數字,切長度在4~25之間!");

       }

       //如果年齡不在有效的年齡段內

       if(uage>150 || uage<0){

           addFieldError("uage","您輸入的年齡不符合正常規則!");

       }

      

       if(uage>150 || uage<0){

           Calendar end = Calendar.getInstance();

           end.set(2050,2,21);

           Calendar start = Calendar.getInstance();

           start.set(1900,1,1);

           //如果生日不爲空,且生日不是一個有效的生日

           if(ubirth==null || !(ubirth.after(end.getTime()) || ubirth.before(start.getTime()))){

             

              addFieldError("ubirth","您輸入的生日必須是在一個有效的時間段內!");

           }

       }  

    }

    @Override

    public void validate() {

       System.out.println("對action中所有的方法進行檢驗");

    }

    public String reg() throws Exception {

       System.out.println("進行業務操作處理............");

       return SUCCESS;

    }

}

下面是針對Action寫的一個配置struts.xml的配置文件。

代碼如下:

<?xml version="1.0" encoding="UTF-8" ?>

 

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="test" extends="struts-default" namespace="/csdn">

       <action name="reg" class="cn.csdn.hr.reg.action.RegAction" method="reg">

           <result name="input">../error.jsp</result>

           <result>../sc.jsp</result>

       </action>

    </package>

</struts>

 

以上都很基礎的實現。

 

最後我們要寫一個註冊的頁面。來接收和顯示信息,並通過form表單將信息傳遞給action處理。從而達到校驗用戶註冊信息的功能。

Jsp代碼如下:

<div>

        <h1>用戶註冊頁面</h1>

        <div>

        <form action="${pageContext.request.contextPath}/csdn/reg.action" method="post">

            用戶名:<input type="text" name="uname"><br/>

            密碼:<input type="text" name="upass"><br/>

            年齡:<input type="text" name="uage"><br/>

            出生日期:<input type="text" name="ubirth"/><br/>

            <input type="submit" value="註冊"/>

        </form>

        </div>

 </div>

 

 

 

發佈了138 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章