Struts-Validate框架
来源:互联网 发布:linux mint 18界面美化 编辑:程序博客网 时间:2024/05/29 13:23
Validator(验证器)框架是一个 Struts 插件,它支持采用声明式的方式对表单进行校验,而不需要用户编写一行Java代码。
一.使用 Validator 框架的好处:
更好的可维护性
校验实现标准化
正确的实现
更少的代码重复
自动客户端验证
注:解压Struts的例子struts-cookbook-1.3.8,部署到web服务器中,查看例子体验。
在工程中集成validate框架,你需要查看org.apache.struts.validator包下的validator-rules.xml文件,它是validate框架的校验规则文件,这个文件说明了如何在struts工程中集成validate框架
二.集成步骤:
1、在struts-config.xml文件中配置validate插件。
2、创建资源文件,并复制validate框架工作需要的信息。
3、把struts-cookbook-1.3.8例程自带的、validate框架的配置文件validation.xml,复制到当前web工程的WEB-INF目录下。validate框架环境搭建好后,就可以采用配置的方式对formbean的属性进行校验,但需要注意:
1、formbean要想使用validate框架校验,不能直接继承 ActionForm, 而要继承其子类 ValidatorForm。
2、如果是DynaActionForm,就必须要继承DynaValidatorForm
三.validator-rules.xml校验规则文件
……
<form-validation>
<global>
<!-- 校验器指定名称 -->
<validator name="required"
<!-- 校验器使用的类 -->
classname="org.apache.struts.validator.FieldChecks"
<!-- 使用该校验器时,调用校验器的什么方法 -->
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
<!-- 校验失败的错误提示信息,此信息为关键字,其值从资源文件中获取。 -->
msg="errors.required"/>
……
</global>
<form-validation>
四.Validation.xml文件详解:
<form>元素:为表单配置验证规则,它的 name 属性指定了表单的名字.<form>元素可以包含一个或多个<field>子元素
<field>元素:配置表单中字段的验证规则
property:指定 ActionForm Bean 中需要进行验证的字段的名字
depends:指定字段的验证规则,多个验证规则之间以逗号隔开
<msg>元素:指定验证规则对应的消息文本。该消息文本将替代在 validator-rules.xml 文件中为验证规则配置的默认的消息文本
name:指定验证规则的名字
key:当 resource 为 true 时,该属性指定消息 key,该消息 key 应该在 Resource Bundle 中存在,当 resource为 false 时,该属性直接指定消息文本
resource:当该属性为true时,表明使用来自于 Resource Bundle 的消息;如果为 false,表明 直接在 key 属性中设置消息文本,默认为 true
arg 元素:替换符合消息中的参数
name,key,resource 元素同上
position 元素:指定替换符合消息中的参数的位置
var 元素:向验证规则传递参数
<arg> 元素也可以访问<var>元素,语法为${var:var-name}
五.完整示例代码:
其功能实现是:对用户名进行校验非空,并且不能小于3位,不能大于6位,对邮箱标准校验
进行浏览器客户端验证
注意:<html:javascript>的formName指定表单的名称。onsubmit事件的值也必须为return validate表单名(this):
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="org.apache.struts.action.ActionErrors"%><%@page import="org.apache.struts.action.ActionMessage"%><%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'register.jsp' starting page</title> </head> <body> <!-- 指定表单的名称 --> <html:javascript formName="registerForm"/> <html:form action="/register" onsubmit="return validateRegisterForm(this)"> 用户名:<input type="text" name="username"><br/> 密码:<input type="password" name="password"><br/> 确认密码:<input type="password" name="password2"><br/> 邮箱:<input type="text" name="email"><br/> <input type="submit" value="注册"> </html:form> </body></html>
validation.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"><form-validation><formset> <!-- 校验哪个formBean的表单 --><form name="registerForm"> <!-- 对哪个字段进行校验,depends指定校验器,required代表非空,后,最小值,最大值 --><field property="username" depends="required,minlength,maxlength"> <!-- resource="false"表示不用进行配置 --><arg key="用户名" resource="false"/><arg key="${var:minlength}" name="minlength" position="1" resource="false"/><arg key="${var:maxlength}" name="maxlength" position="1" resource="false"/><var><var-name>minlength</var-name><var-value>3</var-value></var><var><var-name>maxlength</var-name><var-value>6</var-value></var></field> <!-- 使用正则表达式进行校验 --> <field property="username" depends="required,mask"><arg key="用户名" resource="false"/><var><var-name>mask</var-name><var-value>[A-Za-z]{3,6}</var-value></var></field> <!-- 邮箱校验 --><field property="email" depends="required,email"><arg key="邮箱" resource="false"/></field></form></formset></form-validation>
struts-config.xml中集成Validate :
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config><!--如果要使用动态的Bean要使用org.apache.struts.validator.DynaValidatorFor --><form-beans><form-bean name="registerForm" type="org.apache.struts.validator.DynaValidatorForm"><form-property name="username" type="java.lang.String"></form-property><form-property name="password" type="java.lang.String"></form-property><form-property name="password2" type="java.lang.String"></form-property><form-property name="email" type="java.lang.String"></form-property></form-bean></form-beans><action-mappings><action path="/register" type="cn.itcast.web.action.RegisterAction"name="registerForm"scope="request"input="/register.jsp"></action></action-mappings><controller processorClass="org.apache.struts.action.RequestProcessor"></controller><message-resources parameter="MessageResource"></message-resources><!-- 集成Validate框架 --><plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in></struts-config>
- struts validate校验框架
- Struts-Validate框架
- struts 1.2 validate 验证框架
- Struts 结合 Validate框架验证详解
- struts validate校验框架(转)
- struts validate校验框架(转)
- Struts 结合 Validate框架验证详解
- struts的validate框架验证示例程序
- struts-Validate框架(验证动态ActionForm)
- struts validate
- struts validate
- struts validate
- struts中validate校验框架maxlength校验错误解决
- Struts的validate框架是如何验证的?
- Struts的validate框架是如何验证的?
- struts 使用validate
- struts Validate Session
- struts validate方式
- 精辟的话C++ VS JAVA
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
- 库函数(备忘)--time.h
- C#学习日志(3)
- 球缺 体积计算
- Struts-Validate框架
- windows
- 联通10试点城市IPTV平台确定,黑马频出
- SQL查询前10条记录(SqlServer/mysql/oracle/sybase)[语法分析] (转)
- 禁用asp.net页面中的所有控件 设置本页所有控件的Enabled = false的方法
- 谷歌重组反向链接分类 内部与外部反链将区分展现
- 远程连接SQL SERVER数据库,连接不上的问题
- 以后给孩子起名字不用发愁了,先存着
- Java学习:assert(断言)的使用——测试程序和AssertionError错误事件