Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1967052
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类:

2008-07-24 18:56:25

表单的客户端验证是常用的技术,比如说验证email是否合法,长度是否符合要求,输入的电话号码等等。而这些验证通常的做法是做成一个通用的javascript,然后在页面中引用进来,但是,这样做有一个不方便,就是假如验证的东西不止或者验证方法改变了则很难修改。下面说说struts的统一的客户端验证方案(注意:服务器端的验证必须使用form中的validate()方法)
1.首先在struts-config.xml中加入

2.把要显示的错误消息存放在MessageResources.properties文件中,形如:
error.date={0}不是日期类型
properties文件的设置方法见我以前的blog

3.设置validation.xml代码如下,说明方法都在注释里面:


          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "">


 
  
   
   


    
    
     mask


     ^[0-9a-zA-Z_-_]*$
    

   
   
    
   
   
    
   
   
    
     minlength
     6
    

    
     maxlength
     16
       

   
   -->


   
    
   
   
    
    

     mask
     ^[0-9]*$
    
   
   
  
  
   
    
   
  
  
   
    
   
   
    
   
  
  
   
    
    
                       datePatternStrict


                       yyyy-MM-dd
                
    
   
   
    
    
                       datePatternStrict
                       yyyy-MM-dd
                
 
   
  
 


这个代码是我实际项目中的一个完整的代码。

4.jsp中的form外面增加如下代码


这句的意思为:为userForm启用javascript验证

同时在form的onsubmit事件中添加return validateUserForm(this)方法。其中名字规则为:validate+form的名字.

总结:这样一来,form在提交的时候就会去做validate.xml指定的验证规则和方法,假如以后验证方法改变了,则只需要修改xml文件就可以了,不必要去做其它的修改,这样提高软件的可维护性,可扩展性。
阅读(447) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~