struts2开发_validation_struts2客户端校验

项目结构:

运行结果:

运行结果:注册成功

==============================================

/struts2_0200_validation/src/com/b510/register/action/RegistAction.java

  1 package com.b510.register.action;
  2 
  3 import com.opensymphony.xwork2.ActionSupport;
  4 
  5 import java.util.Date;
  6 
  7 /**
  8  * 注册信息Action
  9  * 
 10  * @author Hongten
 11  * 
 12  */
 13 public class RegistAction extends ActionSupport {
 14     private static final long serialVersionUID = 1L;
 15 
 16     /**
 17      * 用户名
 18 */
 19     private String name;
 20     /**
 21      * 密码
 22 */
 23     private String password;
 24     /**
 25      * 确认密码
 26 */
 27     private String repassword;
 28     /**
 29      * 年龄
 30 */
 31     private int age;
 32     /**
 33      * 工资
 34 */
 35     private double salary;
 36     /**
 37      * 生日
 38 */
 39     private Date birthday;
 40     /**
 41      * 邮箱
 42 */
 43     private String email;
 44     /**
 45      * 个人主页
 46 */
 47     private String personPage;
 48 
 49     public int getAge() {
 50         return age;
 51     }
 52 
 53     public Date getBirthday() {
 54         return birthday;
 55     }
 56 
 57     public String getEmail() {
 58         return email;
 59     }
 60 
 61     public String getName() {
 62         return name;
 63     }
 64 
 65     public String getPassword() {
 66         return password;
 67     }
 68 
 69     public String getPersonPage() {
 70         return personPage;
 71     }
 72 
 73     public String getRepassword() {
 74         return repassword;
 75     }
 76 
 77     public double getSalary() {
 78         return salary;
 79     }
 80 
 81     public void setAge(int age) {
 82         this.age = age;
 83     }
 84 
 85     public void setBirthday(Date birthday) {
 86         this.birthday = birthday;
 87     }
 88 
 89     public void setEmail(String email) {
 90         this.email = email;
 91     }
 92 
 93     public void setName(String name) {
 94         this.name = name;
 95     }
 96 
 97     public void setPassword(String password) {
 98         this.password = password;
 99     }
100 
101     public void setPersonPage(String personPage) {
102         this.personPage = personPage;
103     }
104 
105     public void setRepassword(String repassword) {
106         this.repassword = repassword;
107     }
108 
109     public void setSalary(double salary) {
110         this.salary = salary;
111     }
112 
113 }

/struts2_0200_validation/src/com/b510/register/action/RegistAction-validation.xml

 1 <?xml version="1.0" encoding="GBK"?>
 2     <!-- 指定校验配置文件的DTD信息 -->
 3 <!DOCTYPE validators PUBLIC 
 4     "-//OpenSymphony Group//XWork Validator 1.0.3//EN"
 5     "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
 6     <!-- 校验文件的根元素 -->
 7 <validators>
 8     <!-- 校验Action的name属性 -->
 9     <field name="name">
10         <!-- 指定name属性必须满足必填规则 -->
11         <field-validator type="requiredstring">
12             <param name="trim">true</param>
13             <message>必须输入名字</message>
14         </field-validator>
15         <!-- 指定name属性必须匹配正则表达式 ,长度位4到20之间-->
16         <field-validator type="regex">
17             <param name="expression"><![CDATA[(\w{4,20})]]></param>
18             <message>您输入的用户名只能是字母和数字
19                 ,且长度必须在4到20之间</message>
20         </field-validator>
21     </field>
22     <!-- 校验Action的password属性 -->
23     <field name="password">
24         <!-- 指定password属性必须满足必填规则 -->
25         <field-validator type="requiredstring">
26             <param name="trim">true</param>
27             <message>必须输入密码</message>
28         </field-validator>
29         <!-- 指定password属性必须满足匹配指定的正则表达式 -->
30         <field-validator type="regex">
31             <param name="expression"><![CDATA[(\w{4,25})]]></param>
32             <message>您输入的密码只能是字母和数字
33                 ,且长度必须在4到25之间</message>
34         </field-validator>
35     </field>
36     <!-- 校验Action的repassword属性 -->
37     <field name="repassword">
38         <!-- 指定repassword属性必须满足必填规则 -->
39         <field-validator type="requiredstring">
40             <param name="trim">true</param>
41             <message>必须输入确认密码</message>
42         </field-validator>
43         <!-- 指定repassword属性必须满足匹配指定的正则表达式 -->
44         <field-validator type="fieldexpression">
45             <param name="expression"><![CDATA[(repassword==password)]]></param>
46             <message>您输入的确认密码错误!请重新输入</message>
47         </field-validator>
48     </field>
49     <!-- 指定age属性必须在指定范围内-->
50     <field name="age">
51         <field-validator type="int">
52             <param name="min">1</param>
53             <param name="max">120</param>
54             <message>年纪必须在${min}到${max}之间</message>
55         </field-validator>
56     </field>
57     <!-- 指定salary属性必须在指定的范围内 -->
58     <field name="salary">
59         <field-validator type="double">
60             <param name="min">2000.0</param>
61             <param name="max">10000.0</param>
62             <message>工资必须在${min}到${max}之间</message>
63         </field-validator>
64     </field>
65     <!-- 指定birthday属性必须在指定范围内-->
66     <field name="birthday">
67         <field-validator type="date">
68             <!-- 下面指定日期字符串时,必须使用本Locale的日期格式 -->
69             <param name="min">1950-01-01</param>
70             <param name="max">2100-01-01</param>
71             <message>生日必须在${min}到${max}之间</message>
72         </field-validator>
73     </field>
74     <!-- 指定email属性必须在指定的范围内 -->
75     <field name="email">
76         <!-- 指定需要校验的字段名为email -->
77         <field-validator type="email">
78             <!-- 指定校验失败的提示信息 -->
79             <message>你输入的邮箱必须是一个有效,如:example@163.com</message>
80         </field-validator>
81     </field>
82     <!-- 指定personPage属性必须在指定的范围内 -->
83     <field name="personPage">
84         <!-- 指定需要校验的字段名为personPage -->
85         <field-validator type="url">
86             <!-- 指定校验失败的提示信息 -->
87             <message>你输入的个人主页地址必须有效,如:http://www.example.com</message>
88         </field-validator>
89 
90     </field>
91 </validators>

/struts2_0200_validation/src/struts-validation.xml

 1 <?xml version="1.0" encoding="GBK"?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
 4     "http://struts.apache.org/dtds/struts-2.1.7.dtd">
 5 <struts>
 6     <package name="hongtenRegister" extends="struts-default">
 7         <!-- 用户注册的Action -->
 8         <action name="regist" class="com.b510.register.action.RegistAction">
 9             <!-- 类型转换失败、输入校验失败,转入该页面 -->
10             <result name="input">/regist.jsp</result>
11             <result>/show.jsp</result>
12         </action>
13         <action name="">
14             <result>.</result>
15         </action>
16     </package>
17 </struts>

/struts2_0200_validation/src/struts.xml

1 <?xml version="1.0" encoding="GBK"?>
2 <!DOCTYPE struts PUBLIC
3     "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
4     "http://struts.apache.org/dtds/struts-2.1.7.dtd">
5 <struts>
6     <constant name="struts.i18n.encoding" value="GBK"/>
7     <constant name="struts.devMode" value="true"></constant>
8     <include file="struts-validation.xml"></include>
9 </struts>

/struts2_0200_validation/WebRoot/regist.jsp

 1 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
 2 <%@taglib prefix="s" uri="/struts-tags"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 4     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head>
 7     
 8 <title>请输入您的注册信息</title>
 9     <s:head/>
10 
11 </head>
12 
13 <body>
14 <h2>请输入您的注册信息</h2>
15 <s:form action="regist">
16     <s:textfield name="name" label="用户名"/>
17     <s:password name="password" label="密码"/>
18     <s:password name="repassword" label="确认密码"/>
19     <s:textfield name="age" label="年龄"/>
20     <s:textfield name="salary" label="工资"/>
21     <s:textfield name="birthday" label="生日"/>
22     <s:textfield name="email" label="邮箱"/>
23     <s:textfield name="personPage" label="个人主页"/>
24     <s:submit value="注册"/>
25 </s:form>
26 </body>
27 </html>

/struts2_0200_validation/WebRoot/show.jsp

 1 <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
 2 <%@taglib prefix="s" uri="/struts-tags"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 4     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head>
 7     
 8 <title>校验成功</title>
 9 
10 </head>
11 
12 
13 <body>
14 <h3>校验成功</h3>
15     用户名:<s:property value="name"/><br/>
16     密码:<s:property value="password"/><br/>
17     工资:<s:property value="salary"/><br/>
18     年龄:<s:property value="age"/><br/>
19     生日:<s:property value="birthday"/><br/>
20     邮箱:<s:property value="email"/><br />
21     个人主页:<s:property value="personPage"/>
22 </body>
23 
24 </html>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

jdk 5 到 jdk 10各个版本的新特性

3.静态导入,如:import staticjava.lang.System.out

16630
来自专栏北京马哥教育

Python入门教程:超详细1小时学会Python

1.Hello world 安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行。 我们写下...

47050
来自专栏文大师的新世界

Java面试

自己经验有限,篇幅也有限,这里只是记录一些比较容易混淆或有难度和一些易忘的技术知识点,里面有一些也是面试阿里经常会被问到的问题,但是不保证答案全部正确,有错误的...

26730
来自专栏彭湖湾的编程世界

【javascript】异步编年史,从“纯回调”到Promise

异步和分块——程序的分块执行 一开始学习javascript的时候, 我对异步的概念一脸懵逼, 因为当时百度了很多文章,但很多各种文章不负责任的把笼统的描述混杂...

23380
来自专栏Kevin-ZhangCG

Java开发岗面试知识点解析

394110
来自专栏小灰灰

基于ForkJoin构建一个简单易用的并发组件

基于ForkJoin构建一个简单易用的并发组件 在实际的业务开发中,需要用到并发编程的知识,实际使用线程池来异步执行任务的场景并不是特别多,而且一般真的遇到了需...

42780
来自专栏牛客网

知识总结:设计模式总结(C++和Python实现)前言案例实现 创建型模式 结构型模式行为型模式对比总结

前言 GoF的23种设计模式,包括创建型、结构型和行为型,其涵盖了面向对象思想的精髓以及诸多细节。本文结合《设计模式》和《大话设计模式》,并用C++和Pytho...

64780
来自专栏机器之心

资源 | 简单快捷的数据处理,数据科学需要注意的命令行

16950
来自专栏AzMark

Python 学习之模块

16130
来自专栏java一日一条

java提高篇之异常(上)

在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,...

12520

扫码关注云+社区

领取腾讯云代金券