Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2509682
  • 博文数量: 709
  • 博客积分: 12251
  • 博客等级: 上将
  • 技术积分: 7905
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-17 00:00
个人简介

实现有价值的IT服务

文章存档

2012年(7)

2011年(147)

2009年(3)

2008年(5)

2007年(74)

2006年(431)

2005年(42)

分类: 系统运维

2006-07-07 12:36:39

清除struts-validator框架在页面生成的大量js代码

        struts自带的validator框架的易用性确实不错,但是它的客户端验证(JS验证)却有令人诟病的一点,就是它会在每个使用js验证的页面都生成大幅的js代码。看到这种情况,恐怕本来有兴趣试一试的人,也会望而止步了吧。如果是我们自己写的话,是一定会把这么多的js写在一个.js文件里的。但是我们可以自己手动来修改它的js验证框架,使它符合我们的要求。

        修改很简单,分为3个步骤:

        1、精简valiator-rules.xml文件,去除不需要的验证规则

        validator-rules文件里定义的验证规则可谓大而全,可是并不是每个应用都会用到全部这些规则的,我们可以把不会用到的验证规则从之间(也包括这两个标记)清除掉,以求视野清晰。比如说,我现在只用到name是required的验证规则,来验证非空,那我就可以只保留...,其他都可以删掉了。

        2、将validator-rule.xml中定义的验证代码移到一个单独的.js文件中去

        最关键的一步就是要防止struts在每个页面都生成大量js代码。这些代码就定义在标记里。我们把这些标记中的js都移动到一个新建的validate.js文件里,但是不能使之间为空,必须要填写东西在里面,否则框架会认为js被禁用而直接转到服务端验证。我修改后的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.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
                  msg="error.required">

           
                ]]>
        

        3、在页面的标签之间添加新的js文件的链接

        这一步就不用多说了。
   相信谁都会写,
        好了,大功告成了! 
        这下,页面就干净了!

 

 

阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~