动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.远程控制Java.
.Enumerator 对象.
.访问控制.
.比较 .NET 和 Java.
.DriveLetter 属性.
.抽象类和方法.
.Java 性能优化技巧集锦 (6).
.JScript 的数据类型.
.java设计模式之Template(算法的骨.
.Java的double类型探索..
.对《Java与模式》中工厂方法模式.
.Effective Java -->(一)创建.
.Drive 对象.
.isPrototypeOf 方法.
.图片的预先读取-加快下载速度.
.教你一简单办法用Java获得IP地址.
.GetFile 方法.
.在应用中加入全文检索功能?基于J.
.Hibernate配置文件中映射元素详解.
.EJB轻松进阶之三.

用Validator简化Struts的开发过程

发表日期:2008-1-5 |



  用Validator(验证器)提供的丰富的内置验证方法简化Struts的开发过程。
  
  Struts框架的一个主要好处是它提供了对接收到的表单数据进行验证的内置界面。假如有任何验证失败,则应用程序都会重新显示Html表单,这样就可以改正无效的数据了。假如验证成功,则处理过程会继续进行。Struts框架的简单验证界面会减少与处理数据验证有关的令人头疼的事情,这样你就可以把精力集中到验证代码上,而不是放到捕捉数据、重新显示不完整或无效数据的技巧上。
  
  但是,Struts内置的验证界面也有缺点。例如,在整个应用程序中验证代码经常会大量重复,因为许多域需要相同的验证逻辑。对一些相似字段的验证逻辑进行任何修改都要求在几个地方修改代码,还要重新编译受影响的代码。为了解决这个问题并增强Struts验证界面的功能,作为Struts的第三方附加件创建了Validator框架。后来,Validator被集成到核心Struts代码库中,并从Struts中分离出来,现在它是一个独立的Jakarta Commons项目。虽然Validator是一个独立的框架,但它仍能与其他程序封装在一起后提供,并与Struts无缝集成。
  
  Validator概述
  没有Validator,你就不得不编写验证表单数据所需的全部代码,并把它放入Form Bean对象的validate( )方法中。对于想在其上进行数据验证的每个Form Bean域来说,都需要编写逻辑代码来实现验证。此外,你还必须编写代码来存储验证失败时的出错消息。
  
  有了Validator,你就不必在Form Bean中编写用于验证或存储错误消息的任何代码。相反,Form Bean提供了Validator的一个ActionForm子类,它提供验证或存储错误消息的功能。
  
  可把Validator框架作为一个可用于Form Bean验证的可插入的验证例行程序系统来进行安装。每个验证例行程序都只是一个Java方法,负责执行特定类型的验证任务,验证可能通过,也可能失败。 默认情况下,Validator与几个有用的验证例行程序封装在一起来提供,这些例行程序能满足大多数情况下的验证要求。但是,假如Validator框架没有提供你需要的验证例行程序,那么你可以自己创建定制的验证例行程序,并将它插入到该框架中。此外,Validator还支持服务器端和客户端(javascript)的验证,而Form Bean只提供服务器端验证界面。
  
  Validator使用两个XML配置文件来分别确定安装哪个验证例行程序和如何将它们应用于给定的应用程序。第一个配置文件validator-rules.xml说明应该被插入到框架中的验证例行程序,并提供每个验证的逻辑的名称。validator-rules.xml文件还定义了每个验证例行程序的客户端JavaScript代码。可以配置Validator让它把这个JavaScript代码发送到浏览器上,这样验证就可以在客户端和服务器端进行了。
  
  第二个配置文件validation.xml确定哪个验证例行程序应用到哪个Form Bean。文件中的定义使用struts-config.xml文件给出的Form Bean的逻辑名称以及validator-rules.xml文件给出的验证例行程序的逻辑名称,以便把二者关联起来。
  
  使用Validator框架包括启用Validator插件、配置Validator的两个配置文件,以及创建提供Validator的ActionForm子类的Form Beans。下面具体解释如何配置和使用Validator。
  
  启用Validator插件
  虽然Validator框架是与Struts封装在一起提供的,但在默认状况下Validator并不被启用。为了启用Validator,要向你的应用程序的struts-config.xml文件中添加下面的插件定义。
  
  <!-- Validator Configuration -->
  <plug-in className="org.apache.struts
  .validator.ValidatorPlugIn">
   <set-property property="pathnames"
          value="/WEB-INF/
   validator-rules.xml, /WEB-INF/
   validation.xml"/>
  </plug-in>
  
  该定义告诉Struts为你的应用程序加载并初始化Validator插件。在初始化时,该插件装入由路径名属性指定的、用逗号分隔的Validator配置文件清单。每个配置文件的路径应该用与Web应用程序的相关的路径来指定,如前面的例子所示。
  
  请注重,你的应用程序的struts-config.xml文件必须与Struts Configuration Document Type Definition(Struts配置文档类型定义,DTD)一致,后者规定文件中元素出现的顺序。所以,你必须把Validator插件定义放到该文件的适当位置。确保文件中元素适当排列的最简便方法就是使用诸如Struts Console的工具,它自动格式化你的配置文件,以便与DTD保持一致。
  
  配置validator-rules.xml
  Validator框架可以设置为可插入系统,其验证例行程序仅仅是插入到该系统中执行具体验证的Java方法。validator-rules.xml文件说明性地插入Validator用于执行验证的验证例行程序中。Struts示例应用程序带有这个文件的预配置拷贝。在大多数情况下,你不必修改这个预配置拷贝,除非你要向该框架中添加自己定制的验证。
  
  清单1 是一个示例validator-rules.xml文件,说明如何将验证例行程序插入到Validator中。validator-rules.xml文件中的每个验证例行程序都有自己的定义,它用validator标记声明,利用name属性为该验证例行程序指定逻辑名,并指定该例行程序的类和方法。该例行程序的逻辑名称供该文件中的其他例行程序以及validation.xml文件中的验证定义用于引用该例行程序。
  
  请注重,validator标记放在javascript的标记中,javascript标记用于定义客户端JavaScript代码,以便在客户端执行与服务器端相同的验证。
  
  提供的验证程序
  默认情况下,Validator中包括几个基本验证例行程序,你可以用它们来处理大多数验证问题。这些例行程序具有逻辑名称,如required(用于输入要求的值)、CreditCard(用于输入信用卡号码值)、email(用于输入电子邮件地址值),等等。
  
  创建Form Bean
  为了使用Validator,你的应用程序的Form Bean必须归到Validator的ActionForm的某一子类,而不是ActionForm本身。Validator的ActionForm子类提供了ActionForm的validate( )方法(它嵌入到Validator框架中)的实施过程。你不必从头编写验证代码并把它投入validate( )方法中,相反,可以完全忽略该方法,因为Validator为你提供了验证代码。
  
  与Struts提供的核心功能相类似,Validator提供给你两种可供选择的方法来创建Form Bean。 你可以选择的第一种方法就是像下面这样创建一个特定的Form Bean对象:
  
  package com.jamesholmes.minihr;
  
  import org.apache.struts.validator
  .ValidatorForm;
  
  public class LogonForm extends ValidatorForm {
   private String username;
   private String passWord;
   
   public String getUsername() {
    return username;
   }
   
   public void setUsername(String
  username) {
    this.username = username;
   }
  
   public String getPassword() {
    return password;
   }
  public void setPassword(String
  password) {
    this.password = password;
   }
  }
  
  这个类与你不是用Validator所创建的类相似,但它提供ValidatorForm而不是ActionForm。这个类也不提供ActionForm的空reset( )和validate( )方法的实施过程,因为ValidatorForm提供了相应过程。
  
  在struts-config.xml文件中配置这个特定Form Bean的方法与配置正则Form Bean的方法相同:
  
  
  <form-beans>
   <form-bean name="logonForm"
        type="com.jamesholmes
   .minihr.LogonForm"/>
  </form-beans>
  
  用表单标记的name属性给特定Form Bean指定的逻辑名是在定义validation.xml文件中的验证时所使用的名称,如下所示:
  
  <!DOCTYPE form-validation
  PUBLIC "-//Apache Software Foundation//
      DTD Commons Validator Rules
      Configuration 1.0//EN"
      "http://jakarta.apache.org/
     commons/dtds/validator_1_0.dtd">
  
  <form-validation>
   <formset>
    <form name="logonForm">
     <field property="username"
        depends="required">
      <arg0 key="prompt.username"/>
     </field>
    </form>
   </formset>
  </form-validation>
  
  Validator使用该表单标记的name属性的值将验证定义与要应用这些定义的Form Bean的名称相匹配。
  
  创建Form Bean时可以选择的第二种方法是在struts-config.xml文件中定义一个动态Form Bean,如下所示:
  
  <form-beans>
   <form-bean name="logonForm"
        type="org.apache
  .struts.validator.DynaValidatorForm">
    <form-property name="username"
        type="java.lang.String"/>
    <form-property name="password"
        type="java.lang.String"/>
   </form-bean>
  </form-beans>
  
  动态Form Bean不要求创建特定的Form Bean对象;相反,要定义Form Bean应该具有的属性和类型,而Struts为你动态创建Form Bean。 Validator答应你使用这个概念,就像在核心Struts中使用这个概念一样。与使用
上一篇:Prevayler—轻量级数据存储框架 人气:639
下一篇:JAVA学习入门 对初次接触者 相当有用 人气:617
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-5 新普网络商城XpShop.net v6.6 bu
2008-12-5 ShopEx 网上商店系统 v4.8.2.166
2008-12-5 ShopEx 网上商店系统 v4.8.2.166
2008-12-5 bbsmax v3.0 RTM
2008-12-5 飞飞ajax模仿google提示输入框(兼
2008-12-5 FluxBB v1.2.21
2008-12-5 开源WEB在线SQL管理工具 v1.0.1
2008-12-5 精点留言本 v3.67
2008-12-5 Pomeloo电影程序 v3.1.0
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号