首先我们看下,项目搭建文件布局,如下图:
(图一)
接下来看下,registerForm.jsp在浏览器上的执行页面效果图:
(图二)
附属源码如下:

1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 7 <title>My JSP 'index.jsp' starting page</title> 8 9 </head> 10 11 <body> 12 <form action="login" method="post"> 13 <table align="center" border="1"> 14 <caption><h2>用户登陆</h2></caption> 15 <tr><td align="right">用户名:</td><td><input type="text" name="username" /></td></tr> 16 <tr><td align="right">密码:</td><td><input type="password" name="password" /></td></tr> 17 <tr><td align="center" colspan="2"><input type="submit" value="提交"/> <input type="reset" value="重置"/></td></tr> 18 </table> 19 </form> 20 </body> 21 </html>
那么校验效果如何,接下来看下如下两站图的说明:
以下是图一中其他文件的源码:
1)RegisterAction.java

1 package com.abc.action; 2 import java.util.Date; 3 import com.opensymphony.xwork2.ActionSupport; 4 public class RegisterAction extends ActionSupport { 5 private String uname; 6 private String upassword; 7 private String reupassword; 8 private int uage; 9 private Date ubirth; 10 private String uemail; 11 public String getUname() { 12 return uname; 13 } 14 public void setUname(String uname) { 15 this.uname = uname; 16 } 17 public String getUpassword() { 18 return upassword; 19 } 20 public void setUpassword(String upassword) { 21 this.upassword = upassword; 22 } 23 public String getReupassword() { 24 return reupassword; 25 } 26 public void setReupassword(String reupassword) { 27 this.reupassword = reupassword; 28 } 29 public int getUage() { 30 return uage; 31 } 32 public void setUage(int uage) { 33 this.uage = uage; 34 } 35 public Date getUbirth() { 36 return ubirth; 37 } 38 public void setUbirth(Date ubirth) { 39 this.ubirth = ubirth; 40 } 41 public String getUemail() { 42 return uemail; 43 } 44 public void setUemail(String uemail) { 45 this.uemail = uemail; 46 } 47 public String execute() throws Exception{ 48 return SUCCESS; 49 } 50 }
2) RegisterAction-validation.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE validators PUBLIC 3 "-//Apache Struts//XWork Validator 1.0.2//EN" 4 "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> 5 <validators> 6 <!-- uname校验规则 --> 7 <field name="uname" > 8 <field-validator type="requiredstring"> 9 <param name="trim">true</param> 10 <message>必须输入用户名</message> 11 </field-validator> 12 <field-validator type="regex"> 13 <param name="expression"><![CDATA[(\w{6,20})]]></param> 14 <message>用户名长度必须为6至20之间</message> 15 </field-validator> 16 </field> 17 <!-- upassword校验规则 --> 18 <field name="upassword"> 19 <field-validator type="requiredstring"> 20 <param name="trim">true</param> 21 <message>必须输入密码</message> 22 </field-validator> 23 <field-validator type="regex"> 24 <param name="expression"><![CDATA[(\w{6,20})]]></param> 25 <message>密码长度必须为6至20之间</message> 26 </field-validator> 27 </field> 28 <!-- reupassword校验规则 --> 29 <field name="reupassword"> 30 <field-validator type="requiredstring"> 31 <param name="trim">true</param> 32 <message>必须输入确认密码</message> 33 </field-validator> 34 <field-validator type="regex"> 35 <param name="expression"><![CDATA[(\w{6,20})]]></param> 36 <message>确认密码长度必须为6至20之间</message> 37 </field-validator> 38 <field-validator type="fieldexpression"> 39 <param name="expression"><![CDATA[(reupassword==upassword)]]></param> 40 <message>密码和确认密码必须保持一致</message> 41 </field-validator> 42 </field> 43 <!-- age校验规则 --> 44 <field name="uage"> 45 <field-validator type="int"> 46 <param name="min">1</param> 47 <param name="max">120</param> 48 <message>年龄必须在${min}至${max}之间</message> 49 </field-validator> 50 </field> 51 <!-- birth校验规则 --> 52 <field name="ubirth"> 53 <field-validator type="date"> 54 <param name="min">1900-01-01</param> 55 <param name="max">2010-01-01</param> 56 <message>出生日期必须在1900-01-01至2010-01-01之间</message> 57 </field-validator> 58 </field> 59 <!-- birth校验规则 --> 60 <field name="uemail"> 61 <field-validator type="email"> 62 <message>请输入有效的电子邮箱地址</message> 63 </field-validator> 64 </field> 65 </validators>
3)struts.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 <struts> 6 <package name="struts2" extends="struts-default"> 7 <action name="login" class="com.abc.action.LoginAction"> 8 <result name="success">/loginOk.jsp</result> 9 <result name="error">/loginError.jsp</result> 10 <result name="input">/loginForm.jsp</result> 11 </action> 12 <action name="register" class="com.abc.action.RegisterAction"> 13 <result name="success">/registerOk.jsp</result> 14 <result name="input">/registerForm.jsp</result> 15 </action> 16 </package> 17 </struts>
4)web.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 3 <display-name></display-name> 4 <welcome-file-list> 5 <welcome-file>index.jsp</welcome-file> 6 </welcome-file-list> 7 <filter> 8 <filter-name>struts2</filter-name> 9 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 10 </filter> 11 <filter-mapping> 12 <filter-name>struts2</filter-name> 13 <url-pattern>/*</url-pattern> 14 </filter-mapping> 15 </web-app>
5)registerOk.jsp脚本很简单就不贴了,大体就是返回成功的提示文本可以随意发挥!