Struts的vistor校验器
一 视图
1 show.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>校验成功</title></head><body>
<h3>校验成功</h3>
用户名:<s:property value="user.name"/><br/>
密码:<s:property value="user.pass"/><br/>
年龄:<s:property value="user.age"/><br/>
生日:<s:property value="user.birth"/><br/></body></html>
2 registForm.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>请输入您的注册信息</title><s:head/></head><body>
<h3>请输入您的注册信息</h3>
<s:form action="regist"><s:textfield name="user.name" label="用户名"/><s:textfield name="user.pass" label="密码"/><s:textfield name="user.age" label="年龄"/><s:textfield name="user.birth" label="生日"/><s:submit value="注册"/>
</s:form></body></html>
二 配置文件
<?xml version="1.0" encoding="GBK"?>
<!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.i18n.encoding" value="GBK"/><package name="lee" extends="struts-default"><action name="regist" class="org.crazyit.app.action.RegistAction"><result name="input">/WEB-INF/content/registForm.jsp</result><result>/WEB-INF/content/show.jsp</result></action><action name="*"><result>/WEB-INF/content/{1}.jsp</result></action></package>
</struts>
三 领域模型
package org.crazyit.app.domain;import java.util.*;public class User
{private String name;private String pass;private int age;private Date birth;// name的setter和getter方法public void setName(String name){this.name = name;}public String getName(){return this.name;}// pass的setter和getter方法public void setPass(String pass){this.pass = pass;}public String getPass(){return this.pass;}// age的setter和getter方法public void setAge(int age){this.age = age;}public int getAge(){return this.age;}// birth的setter和getter方法public void setBirth(Date birth){this.birth = birth;}public Date getBirth(){return this.birth;}}
四 资源文件
xwork.default.invalid.fieldvalue={0}字段无效
name.requried=用户名必填!
name.regex=用户名必须是字母和数字,且长度必须在4~25之间!
pass.requried=用户名必填!
pass.regex=用户名必须是字母和数字,且长度必须在4~25之间!
age.range=年龄必须在${min}和${max}之间。
birth.range=生日必须在${min}和${max}之间。
五 校验文件
<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator 1.0.3//EN""http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<!-- 校验文件的根元素 -->
<validators><!-- 校验user的name属性 --><field name="name"><!-- 指定name属性必须满足必填规则 --><field-validator type="requiredstring"><param name="trim">true</param><!-- 如果校验失败,输出name.requried对应的国际化信息 --><message key="name.requried"/></field-validator><!-- 指定name属性必须匹配正则表达式 --><field-validator type="regex"><param name="regex"><![CDATA[(\w{4,25})]]></param><!-- 如果校验失败,输出name.regex对应的国际化信息 --><message key="name.regex"/></field-validator></field><!-- 校验user的pass属性 --><field name="pass"><!-- 指定pass属性必须满足必填规则 --><field-validator type="requiredstring"><param name="trim">true</param><!-- 如果校验失败,输出pass.requried对应的国际化信息 --><message key="pass.requried"/></field-validator><!-- 指定pass属性必须满足匹配指定的正则表达式 --><field-validator type="regex"><param name="regex"><![CDATA[(\w{4,25})]]></param><!-- 如果校验失败,输出pass.regex对应的国际化信息 --><message key="pass.regex"/></field-validator></field><!-- 指定user的age属性必须在指定范围内--><field name="age"><field-validator type="int"><param name="min">1</param><param name="max">150</param><!-- 如果校验失败,输出age.range对应的国际化信息 --><message key="age.range"/></field-validator></field><!-- 指定user的birth属性必须在指定范围内--><field name="birth"><field-validator type="date"><!-- 下面指定日期字符串时,必须使用本Locale的日期格式 --><param name="min">1900-01-01</param><param name="max">2050-02-21</param><!-- 如果校验失败,输出birth.range对应的国际化信息 --><message key="birth.range"/></field-validator></field>
</validators>
六 action
package org.crazyit.app.action;import com.opensymphony.xwork2.ActionSupport;import org.crazyit.app.domain.*;public class RegistAction extends ActionSupport
{// 定义User类型的成员变量用于封装请求参数private User user;// user的setter和getter方法public void setUser(User user){this.user = user;}public User getUser(){return (this.user);}
}
七 RegistAction-validation.xml
<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验规则文件的DTD信息 -->
<!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator 1.0.3//EN""http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<!-- 校验规则文件的根元素 -->
<validators><!-- 指定校验user字段 --><field name="user"><!-- 使用visitor校验器 --><field-validator type="visitor"><!-- 指定校验规则文件的context --><param name="context">userContext</param><!-- 指定校验失败后提示信息是否添加下面前缀 --><param name="appendPrefix">true</param><!-- 指定校验失败的提示信息前缀 --><message>用户的:</message></field-validator></field>
</validators>
八 测试
Struts的vistor校验器相关推荐
- 使用 Struts2 校验器校验用户注册信息的例子
转自:https://blog.csdn.net/jin2005006/article/details/53999562 基于验证框架的输入校验 一.创建一个struts2项目testValidato ...
- struts2校验框架之Visitor校验器
Visitor校验器主要用于检测Action里的复合属性,如一个Action里面包含了User类型的属性. 假设User类包含了username和password属性,为了验证Action里User类 ...
- IDEA 中用 Struts2 框架实现注册登录校验器
新建 Struts2 项目 new project -> Java Enterprise -> Struts2 新建好的项目目录如下: 然而我在运行时 Tomcat 报错说"on ...
- zend framework php编码规范,Zend Framework常用校验器详解
本文实例讲述了Zend Framework常用校验器.分享给大家供大家参考,具体如下: Date日期校验器 代码:<?php require_once 'Zend/Validate/Date.p ...
- @SkipValidation跳过Struts2validation校验器
在方法前加:@SkipValidation注解,该方法可以跳过validation校验器校验器 转载于:https://www.cnblogs.com/ITYOB/p/7475368.html
- 用Command实现校验器
最近工作中遇到许多校验的数据,一直用if-else去校验很不灵活,于是用Command方式去实现 <?xml version="1.0" encoding="UTF ...
- 自定义的注解校验器的实现
首先先学习一下注解,注解为我们在代码中添加信息提供了一种形式化的方法,使得我们在稍后的某个时刻可以方便地使用这些数据. 在日常的编码中我们一直都在使用注解,只是没有特别关注过,Java中内置了三种注解 ...
- 数据校验器架构模式组
刘 岳林 (yuelin_liu@msn.com), 软件工程师 2007 年 1 月 15 日 本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校 ...
- python参数检验框架_python-wtforms框架如何自定义校验器的原理和方法总结
细节请看注释,核心就是__call__函数的用法(def __call__(self,form, field)参数由继承的Form自动提供) from wtforms import Form, Str ...
最新文章
- DB2 9 使用拓荒(733 检讨)认证指南,第 2 部分: DB2 数据操作(6)
- 深度学习 Deep Learning with MATLAB(懒人版)
- Open XML应用安全(2)OLE机制
- Vim中数字自增、自减
- go语言及etcd环境搭建
- php 中标麒麟龙芯5.0,中标麒麟桌面操作系统软件
- HBase:HBase的rowKey设计技巧
- 电脑文件的后缀名不见了,如何显示隐藏扩展名?
- 程序员薪酬待遇大调查:学哪种语言的最赚钱?
- 朝代官制,6部是什么
- 响应式美容美发形象设计艺术教育学校网站织梦模板源码
- 计算机课件白板培训,交互式电子白板的使用培训(1)(2)ppt课件
- 老厉害了!2600亿,紫光集团南京再投半导体生产线
- IOC和Autofac简单说明
- x~N(0,4),F(x)为其分布函数,则F(x)
- BG22蓝牙——第三弹 蓝牙的一些入门知识,整理了大佬们的文章和链接
- 台阶的意思_台阶词语解释
- liblinear相关学习
- “我”Java程序员今年30岁,还有五年“寿命”所谓的中年危机?
- 论文笔记:How Can We Know What Language Models Know?