Struts2注册校验
1. 注册校验首先是一个jsp页面来访问struts.xml
<body>
<div align="center">
<h3>注册页面</h3>
<form action="csdn/regin.action" method="post">
用户名:
<input type="text" name="uname" />
<br /><br/>
密码:
<input type="text" name="upass" />
<br /><br/>
性别:
<input type="radio" name="usex" checked="checked"/>男
<input type="radio" name="usex" />女
<br /><br/>
年龄:
<input type="text" name="uage" />
<br /><br/>
出生日期:
<input type="text" name="ubrith" />
<br /><br/>
<input type="submit" value="注册" />
</form>
<div style="color:red; font-size:14px;">
<!-- 错误信息的反馈地 -->
<s:fielderror></s:fielderror>
</div>
</div>
</body>
2. Struts.xml文件是一个转折站,代码为:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="reg" extends="struts-default" namespace="/csdn">
<action name="regin" class="cn.csdn.hr.action.ReginAction">
<result name="input">../regin.jsp</result>
<result name="success">../index.jsp</result>
</action>
</package>
</struts>
3. Action类中就是接受传过来的参数,并赋值,赋值之后会在执行返回的execute之前去访问校验的代码。首先action的代码为:
package cn.csdn.hr.action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class ReginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String uname;
private String upass;
private boolean usex;
private Integer uage;
private Date ubirth;
public ReginAction() {
super();
// TODO Auto-generated constructor stub
}
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 boolean isUsex() {
return usex;
}
public void setUsex(boolean usex) {
this.usex = usex;
}
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;
}
public String execute() {
System.out.println("用户名:"+uname+"密码:"+upass+"性别:"+usex+"出生日期:"+ubirth);
System.out.println("校验成功、、、、、");
return SUCCESS;
}
}
4.访问校验的代码是封装好的,只要调用标签就可以了,代码为:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<!-- 用户校验 -->
<validators>
<!-- 验证用户名 -->
<field name="uname">
<!-- 必填字符串 -->
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入名字</message>
<!--<message>${getText(name.requried)}</message>
--></field-validator>
<!-- 指定name必须匹配 的格式 -->
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的用户名必须是字母和数字,且在4-25为之间</message>
</field-validator>
</field>
<!-- 验证密码是否符合 -->
<field name="upass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入密码</message>
</field-validator>
<!-- 指定密码 -->
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>您输入的密码必须是字母和数字,且在4-25为之间</message>
</field-validator>
</field>
<!-- 性别的判断 -->
<field name="usex">
<field-validator type="required">
<message>性别不能为空</message>
</field-validator>
</field>
<!-- 年龄的判断 -->
<field name="uage">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年龄必须在1-150岁之间</message>
</field-validator>
</field>
<!-- 出生日期的判断 -->
<field name="ubirth">
<field-validator type="date">
<!-- 指定 日期的格式 -->
<param name="min">1900-01-01</param>
<param name="max">2012-12-12</param>
<message>日期必须在${min}和${max}之间</message>
</field-validator>
</field>
</validators>