Struts1.1的页面校验

原创 2004年06月15日 10:47:00

Struts作为一个不停发展的开源项目,在页面校验这一块采用了Jakarta的Commons项目的Validate,结合Struts的MVC体系,
用起来确实不错。建议校验这部分在完成jsp后加入。
原理:Struts的页面校验分两种方法,一种是前台生成Javascript,一种是后台class。
????? 而出错信息对应的也有两种显示方法,一种是弹出消息框,一种是在原页面显示。
????? 我个人比较喜欢弹出消息框这种,因为可以将焦点置到出错的field中。
????? 所以我侧重介绍如何实现这种。
????? 请按下列步骤一步一步进行,进行的时候思考它的做法。
?????
1???? 将Struts所需lib加入到项目lib路径或服务器的lib路径
????? Struts1.1需要如下lib:struts-legacy.jar struts.jar jakarta-oro.jar commons-validator.jar
????? commons-logging.jar commons-lang.jar commons-fileupload.jar commons-digester.jar commons-collections.jar
????? commons-beanutils.jar(可以看到Struts1.1用了很多Commons项目的东东)
2???? 将下载的Struts1.1的包中的webapps/struts-validator.war 中的validation.xml和validator-rules.xml
????? 拷到项目的WEB-INF路径
????? 仔细研究一下这两个文件,可以看到validator-rules.xml是提供一些常用的validation规则。
????? 目前提供了required,requiredif,minlength,maxlength,mask,byte,short,integer,long,float,
????? double,date,range,intRange,floatRange,creditCard,email,
????? 我看了一下,只有mask不知道具体是干啥的,其他望文生义。(至于如何DIY一条自己的rule,俺还不会)
????? 重头戏来了,修改validation.xml。可以看一下validation.xml结构
validation.xml:?????
<?xml version="1.0" encoding="ISO-8859-1" ?>

????????? "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
????????? "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">


??
?????
??????? phone
??????? ^/(?(/d{3})/)?[-| ]?(/d{3})[-| ]?(/d{4})$
?????
?????
??????? zip
??????? ^/d{5}/d*$
?????
??
??
?????
??????? zip
??????? ^/d{5}(-/d{4})?$
?????

?????


???????? ???????? ??? depends="required,mask,minlength">
???????? ?????
???????? ?????
????????????????????
?????????????????????? mask
?????????????????????? ^/w+$
????????????????????

????????????????????
?????????????????????? minlength
?????????????????????? 5
????????????????????

????????
??????? ..........
??????
????? 相信大家仔细一看就明白了,首先,可以定义一些用正则表达式表示的规则,这些规则还分全局和局部。
????? 这样就可以DIY一些可以用正则表达式表示的规则了,例如下面就具体用到了自定义的规则:phone。
????? ...
??
?????
??????? phone
??????? ^/(?(/d{3})/)?[-| ]?(/d{3})[-| ]?(/d{4})$
?????
??
?? ...??
????? ???????? ??? depends="mask">
???????? ?????
????????????????????
?????????????????????? mask
?????????????????????? ${phone}
????????????????????

?????
?? ...
????? 这下也明白mask的作用了,原来它是专门用于自定义规则!
????? 然后就可以添加需要加validation的field了,格式如下:
?????
?????
???????? ???????? ??? depends="required,mask,minlength">
???????? ?????
???????? ?????
????????????????????
?????????????????????? mask
?????????????????????? ^/w+$
????????????????????

????????????????????
?????????????????????? minlength
?????????????????????? 5
????????????????????

????????
?????
?????
?????
3???? 将需要加validation的formbean全部改成 extends ValidatorForm
4???? 在struts-config.xml文件中加入一段代码,位置如下:
......
???
?????
???
?
?
?
???
?

5???? 在ApplicationResources.properties文件中加入如下内容:

# Errors
errors.header=Validation Error
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be an byte.
errors.short={0} must be an short.
errors.integer={0} must be an integer.
errors.long={0} must be an long.
errors.float={0} must be an float.
errors.double={0} must be an double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is not a valid credit card number.
errors.email={0} is an invalid e-mail address.
??????
????? 且注意在修改validation.xml时,如
??????
????? 则ApplicationResources.properties中要有对应的 registrationForm.firstname.displayname 值。
????? 这就可以实现出错信息本地化。

6???? 修改要加validation的jsp文件。两处:
??????? 1 在页面的form标签中加入onsubmit事件
??????? <?xml:namespace prefix = html />


??????? 2 在之前加入一段代码,内容如下:
???????
??????? 这段代码会自动生成上面的validateRegistrationForm(this)函数
??????
???? 一步一步下来,终于明白它的思路了,就是根据配置自动生成javascript代码来校验。至于它如何实现的,
???? 以后再研究吧,要吃饭了。

[struts]Struts1.1的页面校验

Struts作为一个不停发展的开源项目,在页面校验这一块采用了Jakarta的Commons项目的Validate,结合Struts的MVC体系,用起来确实不错。建议校验这部分在完成jsp后加入。原理...
  • bmjwin
  • bmjwin
  • 2009年07月17日 15:58
  • 457

struts中的验证框架的使用

步骤**1 环境配置:** 首先要为struts加入Validator支持 lib包:加入validator所需的jar包 配置文件:struts-config.xml里...
  • sushauai
  • sushauai
  • 2016年03月17日 10:24
  • 462

struts1.1中validation校验框架的应用

校验框架加载:在建立web模型时选中struts1.1中的validation,此事例以登录模块为例实现struts校验框架的脚本验证以及form验证,包括资源文件的国际化 1.       stru...
  • leckylee
  • leckylee
  • 2006年08月07日 12:35
  • 1651

struts1多模块开发

可以将一个struts-config.xml分割成多个小的struts-config.xml。每个都必须按照struts-config DTD文件的格式进行编写。配置举例如下:  action   ...
  • dcsoft_nick
  • dcsoft_nick
  • 2011年07月18日 13:58
  • 827

struts 中MappingDispatchAction 和 DispatchAction

DispatchAction虽然将相同或者类似的功能模块集中到了一个类中了,易于代码维护,也大大减少了配置文件中配置标签的长度,但是他必需要求开发人员在请求中再带上一个参数,这就额外的增加了很多麻烦,...
  • zxq1406spys
  • zxq1406spys
  • 2009年03月04日 14:23
  • 1777

正则表达式 在 JS 中的验证前台form

关键词:正则表达式,JS,验证 function checkForm(str){ var ruly = "/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0...
  • AlvinNoending
  • AlvinNoending
  • 2014年12月23日 11:59
  • 1201

struts1.1里的页面有效验证

  1.找到strtus1.1 中的这个文件(struts-example.war)将它解包。(要用到里面的很多文件)  2.在jb下安装struts1.1(jb9里的配置方法,可以参考一下)    ...
  • zaowei21
  • zaowei21
  • 2007年05月09日 01:44
  • 356

struts1.1 帮助文档

 struts1.1 帮助文档我已经上传了,各朋友可以去下载
  • shhuangjian
  • shhuangjian
  • 2008年03月04日 10:33
  • 421

struts1.1 配置文件属性

Struts应用采用两个基于XML的配置文件来配置,分别是web.xml和struts-config.xml文件。web.xml文件是配置所有web应用的,而struts-config.xml文件是s...
  • lhooouuu
  • lhooouuu
  • 2010年08月16日 14:53
  • 572

struts1.1拦截器

 Usage NotesTo use SAIF, you must configure it as a Struts plugin, configure the interceptor config ...
  • cut007
  • cut007
  • 2007年04月03日 19:32
  • 2152
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts1.1的页面校验
举报原因:
原因补充:

(最多只允许输入30个字)