使用Struts校验框架完成输入校验

JAVA学习网 2017-09-28 10:42:12

首先我们看下,项目搭建文件布局,如下图:

(图一)

接下来看下,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="提交"/>&nbsp;&nbsp;<input type="reset" value="重置"/></td></tr>
18                        </table>
19             </form>
20   </body>
21 </html>
View Code

那么校验效果如何,接下来看下如下两站图的说明:

以下是图一中其他文件的源码:

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 }
View Code

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>
View Code

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>
View Code

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>
View Code

5)registerOk.jsp脚本很简单就不贴了,大体就是返回成功的提示文本可以随意发挥!

 

阅读(822) 评论(0)