使用Struts校验框架完成输入校验
首先我们看下,项目搭建文件布局,如下图:


(图一)
接下来看下,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脚本很简单就不贴了,大体就是返回成功的提示文本可以随意发挥!
We may encounter many defeats ,but we must not be defeated.
So if you fell down yeaterday,stand up today.
Life is not easy,we should try our best to realize our dream.
Not only for your parents,your wife,your son or daughter,but also for yourself.

浙公网安备 33010602011771号