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>