Struts2的验证器案例
来源:互联网 发布:人工智能相关论文 编辑:程序博客网 时间:2024/06/07 10:57
1.首先需要注意如下的关键文件的查找方法
1)找到在struts-2.3.15.3-all\struts-2.3.15.3\apps\struts2-blank\WEB-INF\lib下的xwork-core-2.3.13.3.jar解压,打开xwork-validator-1.0.3.dtd,复制其中的验证器约束。
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
2)在xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validators下的default.xml可以看到struts2内置的验证器。
2.首先给出struts.xml的配置
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.devMode" value="true"/><package name="p1" extends="struts-default"><!-- 声明式验证器案例的动作类配置 --><action name="addStudent" class="com.itheima.web.action.StudentAction" method="addStudent" ><result name="input">/student.jsp</result></action></package></struts>
3.StudentAction.java
public class StudentAction extends ActionSupport implements ModelDriven<Student> {private Student student = new Student();public Student getModel() {return student;}public String addStudent(){return SUCCESS;}public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}}
4.student.jsp如下,从中可以看出,student包含的成员变量有username,age,email,password,score,url,gender。这时候需要对输入的信息是否正确进行验证,这时候还需要配置相应的验证器
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%--导入struts2的标签库 --%><%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户注册,使用的是struts2的标签</title> <s:head></s:head> </head> <body> <s:actionerror/> <%--动作错误 --%> <%--<s:fielderror /> 字段错误 --%> <%--struts2的form标签,它提供了和原始html表单标签几乎一致的属性 action:请求的地址。直接写动作名称。不用写contextPaht method:请求的方式。在这里不用写。struts2的form表单默认就是post enctype:表单编码的MIME类型 --%> <s:form action="addStudent.action"> <s:textfield name="username" label="用户名" /> <s:textfield name="age" label="年龄"/> <s:textfield name="email" label="邮箱"/> <s:textfield name="password" label="密码" /> <s:textfield name="repassword" label="确认密码"/> <s:textfield name="score" label="成绩"/> <s:textfield name="url" label="个人主页"/> <%--list中的取值是生成一个list集合,并往集合中放入元素 --%> <s:radio name="gender" list="{'男','女'}" label="性别"/> <s:submit value="注册"/> </s:form> </body></html>
5.验证器的命名为StudentAction-addStudent-validation.xml(命名由三部分组成 动作类的类名-struts.xml中定义的动作类的类名-固定validation),其放置位置与StudentAction.java在同一个包下。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"><validators><field name="username"><field-validator type="requiredstring"><message>请输入用户名</message></field-validator></field><field name="age"><field-validator type="int"><!-- 使用注入的方式,设置最大和最小值 --><param name="min">18</param><param name="max">100</param><message>请输入18-100之间的整数</message></field-validator></field><field name="email"><field-validator type="email"><message>请输入正确的邮箱格式</message></field-validator></field><field name="password"><field-validator type="requiredstring"><!-- 注入取消使用trim --><param name="trim">false</param><message>请输入密码</message></field-validator><field-validator type="stringlength"><param name="minLength">3</param><param name="maxLength">8</param><message>密码长度是3~8位的</message></field-validator></field><!-- 确认密码和密码必须保持一致,是2个字段的事,所以要使用基于验证器的声明方式,其中[CDATA[]]是为了去掉特殊字符 --><validator type="expression"><param name="expression"><![CDATA[password == repassword]]></param><message>两次密码必须一致</message></validator><field name="score"><field-validator type="regex"><param name="regex">\d+</param><message>请输出正确的成绩</message></field-validator></field><field name="url"><field-validator type="url"><message>请输入正确的url地址</message></field-validator></field><field name="gender"><!-- required是一个只验证是否null的内置验证器,不会去除空格 --><field-validator type="required"><message>请选择性别</message></field-validator></field></validators>其中涉及到的注入方式,对应的参数命名方式需要在xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validators下的default.xml可以看到struts2内置的验证器,并通过其实现类进行查找。在java api中查找Pattern /d+ 多位数字【0-9】
阅读全文
0 0
- Struts2的验证器案例
- Struts2案例--开发权限验证拦截器
- struts2的验证特定方法,验证框架,以及国际化的使用案例
- Struts2&ajax实现用户名唯一验证案例
- struts2开发-validate-表单验证案例1
- struts2开发-validate-表单验证案例2
- 简单的struts2案例
- Struts2自定义拦截器案例:验证用户是否登录拦截器
- Struts2的拦截器&验证器
- Struts2的拦截器、自定义拦截器、Struts2 验证机制
- Struts2-编写自己的验证器
- Struts2框架提供的内置验证器
- Struts2 内置验证器的使用例子
- Struts2拦截器的应用:登录验证
- struts2--基于xml文件的验证器
- struts2的客户端验证
- struts2的客户端验证
- struts2的验证框架
- 洛谷 P1714 切蛋糕
- 一分钟认识JAVA与Android的联系与区别
- Class<T>简介
- IntellijIDEA项目使用Maven打jar包
- Floyd和Dijkstra的最短路
- Struts2的验证器案例
- 线段树 [HZOI 2015]聪聪的世界
- vue使用ElementUI时导航栏默认展开
- 【跟着stackoverflow学Pandas】How to iterate over rows in a DataFrame in Pandas-DataFrame按行迭代
- libusb & libusbk
- 2017-8-4
- vim编辑器的常用用法
- 用react vr重写threejs示例
- ASP.NET SQLServer 行转列,不固定列,动态列 的实现