<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
<!-- 验证用户名只能是字母或数字,长度在6-25之内 -->
<field-validator type="regex">
<param name="expression">
<![CDATA[(\w{6,25})]]>
</param>
<message>您输入的用户名必须在6-25个字符内,并且只允许字母和数字</message>
</field-validator>
</field>
<!-- 重点 -->
<field name="user.password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator> <field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">18</param>
<message>密码长度必须在6-18个字符内</message>
</field-validator> <field-validator type="fieldexpression">
<param name="expression"><![CDATA[(user.password==user.repassword)]]></param>
<message>两次密码必须一致</message>
</field-validator> </field>
<!-- 重点 -->
<field name="user.age">
<field-validator type="int">
<param name="min">0</param>
<param name="max">150</param>
<message>年龄范围不正确</message>
</field-validator>
</field> <field name="user.email">
<field-validator type="email">
<message>邮箱格式不正确:例如(example@163.com)</message>
</field-validator>
</field> <field name="user.phone">
<field-validator type="regex"> <param name="expression"><![CDATA[^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8})|(0\d{2}-\d{7,8})|(0\d{3}-\d{7,8})$]]></param>
<message>电话号码不符合规范!xxxxxxxxxxx或05xx-xxxxxx或 010-xxxxxxxx</message>
</field-validator>
</field> </validators>

1:放置位置和目录结构

2:action

package com.test.action;

import com.opensymphony.xwork2.ActionSupport;
import com.test.bean.Users; public class RegisterAction extends ActionSupport {
private Users user;
@Override
public String execute() throws Exception { return SUCCESS;
} public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
}

3:index.jsp页面展示

 <form action="<%=path %>/test/registerAction" method="post"><!--必须要带[0],除[] -->
用户名:<input type="text" name="user.username"/>${errors["user.username"][0]}<br><br>
密码:<input type="password" name="user.password"/>${errors["user.password"][0]}<br><br>
确认密码:<input type="password" name="user.repassword"/>${errors["user.repassword"][0]}<br><br>
年龄:<input type="text" name="user.age"/>${errors["user.age"][0]}<br><br>
邮箱:<input type="text" name="user.email"/>${errors["user.email"][0]}<br><br>
电话:<input type="text" name="user.phone"/>${errors["user.phone"][0]}<br><br>
<input type="submit" value="提交"/>
</form>

struts表单验证xml配置文件的更多相关文章

  1. 【锋利的jQuery】表单验证插件踩坑

    和前几篇博文提到的一样,由于版本原因,[锋利的jQuery]表单验证插件部分又出现照着敲不出效果的情况. 书中的使用方法: 1. 引入jquery源文件, 2. 引入表单验证插件js文件, 3. 在f ...

  2. struts2官方 中文教程 系列十一:使用XML进行表单验证

    在本教程中,我们将讨论如何使用Struts 2的XML验证方法来验证表单字段中用户的输入.在前面的教程中,我们讨论了在Action类中使用validate方法验证用户的输入.使用单独的XML验证文件让 ...

  3. 配置web.xml和glassfish容器实现javaEE表单验证

    web.xml配置: <!-- 声明用于安全约束的角色 --> <security-role> <role-name>ReimUser</role-name& ...

  4. jQuery学习之:Validation表单验证插件

    http://polaris.blog.51cto.com/1146394/258781/ 最近由于公司决定使用AJAX + Struts2来重构项目,让我仔细研究一下这两个,然后集中给同事讲讲,让每 ...

  5. 初学structs2,表单验证

    一.简单表单验证示例 structs.xml配置 <struts> <package name="validate" namespace="/valid ...

  6. Webx之表单验证

    引入服务器端表单验证service,是通过在webx.xml中通过服务引入的方式完成的.例如,在user相关信息的表单验证的产生过程是这样的:webx-user.xml通过 <beans:imp ...

  7. SpringMVC 表单验证

    SpringMVC 表单验证 本章节内容很丰富,主要有基本的表单操作,数据的格式化,数据的校验,以及提示信息的国际化等实用技能. 首先看效果图 项目结构图 接下来用代码重点学习SpringMVC的表单 ...

  8. jdbc工具类的封装,以及表单验证数据提交后台

    在之前已经写过了jdbc的工具类,不过最近学习了新的方法,所以在这里重新写一遍,为后面的javaEE做铺垫: 首先我们要了解javaEE项目中,文件构成,新建一个javaEE项目,在项目中,有一个we ...

  9. test_maven_实现表单验证

    这篇文章是我的上一篇文章的续集,如未看过,可看一下,上面的test_maven再继续看这个 这篇文章主要是阐述使用struts实现表单验证的功能. 1.首先了解actionContext:Action ...

随机推荐

  1. docker插件

    import docker c = docker.Client(base_url='unix://var/run/docker.sock',version='1.15',timeout=10) pri ...

  2. python socket实现文件传输(防粘包)

    1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: ...

  3. python爬虫28 | 你爬下的数据不分析一波可就亏了啊,使用python进行数据可视化

    通过这段时间 小帅b教你从抓包开始 到数据爬取 到数据解析 再到数据存储 相信你已经能抓取大部分你想爬取的网站数据了 恭喜恭喜 但是 数据抓取下来 要好好分析一波 最好的方式就是把数据进行可视化 这样 ...

  4. saturne installation on Ubuntu

    test installation Table of Contents 1. installation guide 1 installation guide saturne_installation. ...

  5. 创建Maven版Java工程

    步骤: 创建成功后,如图:

  6. 【Codeforces 1034A】Enlarge GCD

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设原来n个数字的gcd为g 减少某些数字之后 新的gcd肯定是g的倍数 即gx 我们可以枚举这个x值(x>=2) 看看原来的数字里面有多 ...

  7. POJ 1226 Substrings

    Substrings Time Limit: 1000ms Memory Limit: 10000KB This problem will be judged on PKU. Original ID: ...

  8. c++ 上机实验题

    c++语言俺是不会啦,但是朋友考试需要,那只能勉为其难的入门下做做考试题了. 以下就是具体的题目和答案: ----------------------------------------------- ...

  9. 清北学堂模拟赛d1t2 火柴棒 (stick)

    题目描述众所周知的是,火柴棒可以拼成各种各样的数字.具体可以看下图: 通过2根火柴棒可以拼出数字“1”,通过5根火柴棒可以拼出数字“2”,以此类推. 现在LYK拥有k根火柴棒,它想将这k根火柴棒恰好用 ...

  10. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system

    A multiprocessor computer system is provided having a multiplicity of sub-systems and a main memory ...