Rumah Java javaTutorial 在Struts中使用Validator框架

在Struts中使用Validator框架

Dec 17, 2016 am 10:52 AM


  每个应用程序都有责任确保它们插入到后台资料库的数据是合法有效的,究竟,假如这些应用程序所依靠的数据一旦遭到了破坏,那将是灾难性的,那应用程序还能拿什么来使自己正常运转呢?比如说,使用正规关系数据库的一个应用程序,数据库中的每个字段都有自己一定的规则和约束,来保证存储在其中的数据在一定程度上的正确性。任何要使用后台资料库数据的应用程序都有责任保护它们提交的数据的完整性。
  
  任何试图插入或更新不符合标准的数据的操作都有可能被发现并拒绝。这种检测可能遍布在整个应用程序的每个角落,在表现层可能进行一些验证,在业务逻辑层,商业逻辑对象一般也有商业逻辑的验证,还有在后台资料库也要对数据进行检查。
  
  不幸的是,由于这种验证在应用程序中无处不在,造成了应用程序在一定程度上的验证数据的代码冗余。这并不是应用程序所希望的,因为这种在多处的重复劳动,使得应用程序的部署和维护要花去更多的时间。假如在整个应用程序中,这些验证规则可以重复使用,将使得应用程序更加富有弹性,换句话说就是,部署更快捷,定制更轻易,程序更灵活。
  
  Jakarta Commons 项目Validator框架简介
  Validator是由David Winterfeldt创建的开源项目,它也是Jakarta Commons的一个子项目。Commons项目主要是提供一些像Validator这样的一些可重用组件。其他闻名的Commons组件还有如BeanUtils,Digester,Logging框架等。Validator 1.0版本发布于2002年11月初。
  
  使用Validator的好处
     .使用Validator框架比一般的在应用程序的代码中定义验证规则有好多优点,如:
     .可以在一处为应用程序定义验证规则;
     .验证规则和应用程序是松耦合的;
     .服务器端和客户端的验证规则可以在同一处定义;
     .配置新验证规则或修改已有验证规则变得更加简单;
     .支持国际化;
     .支持正则表达式;
     .可以用于Web应用程序也可用于标准的java应用程序;
     .采用声明的方法实现而不是编程实现;
  除了之外,Validator最大的特征就是自身支持可插性(pluggability)。在文章的后
  
  面你将会看到使用Validator框架内置的验证规则来更好地完成你的工作,而更重要的是,Validator框架答应你自定义验证程序,并插入到框架中。
  
  Struts和Validator的关系
  应该指出的是Validator框架本身是因Struts框架而建立的。Validator的创建者David Winterfeldt在使用Struts的过程中发现,在许多ActionForm类中需要反复使用同一个验证规则,这样造成了大量的代码冗余。于是他决定创建Validator框架来消除这种冗余,这样Validator就诞生了。
  
  尽管Validator架构最初是为Struts架构而生,但它还是被设计和构造成了可以独立于Struts架构而单独使用。这一个特征使得你可以在任何的应用程序中使用这个框架,不必管它是不是Struts架构的。并不会因为你不使用Struts框架而影响Validator架构对你的应用程序作用。事实上,这就是为什么Validator是Jakarta Commons项目的一部分而不直接是Struts项目的一部分。
  
  现在,我们来将这个框架整合应用到像基于Struts构架这样的Web应用程序上。在文章的最后中我们再介绍如何把它应用到其他类型的应用程序中,如基于EJB的应用程序。
  
  Validator组件概述
     Validator架构有下面这些组件组成:
     Validators;
     配置文件;
     资源绑定;
     jsp自定义标签;
     Validator Form类;
  
  什么是Validators?
  一个Validator就是,执行一个验证规则时Validator框架调用的一个Java类。框架根据配置文件中定义的方法签名来调用这个Validaotor类。一般情况下,每个Validator类提供一个单独的验证规则,然后这些规则可以组合成更复杂的规则集。
  
  注重:有时出于方便,一个Validator类也可以定义多个验证规则,而每个规则是一个静态方法且并不包含任何客户端状态信息。
  
  框架提供了14种默认的验证规则,有时候这些规则也被称为Validator框架的“基本规则”,这些基本规则如表一:
  名称           描述
  byte,short,integer, 检验值是否能被转换成对应的基本数据类型
  long,float,double 
  creditCard        检验输入域是否是一个合法的信用卡号码
  date        检验输入域是否是一个合法日期
  email        检验输入是否是一个合法Email地址
  mask        检验输入域是否能成功匹配一个正则表达式
  maxLength       检验值的长度是否小于等于给定的最大长度
  minLength       检验值的长度是否大于等于给定的最小长度
  range        检验值的范围是否在最大值和最小值之间
  required        检验输入域是否为不为空,或不包含空格值的长度是否大于零
  表一
  正像你在表一中看到的,Validator框架提供了Web应用程序需要的大多数的验证规则。你可以使用这些现有的验证规则来创建自己验证配置文件。尽管这样,也正如我们前面提到的,和后面要讲到的,你可以根据你的需要随意的增加更多的Validator。
  
  现在,让我们来讨论如何在一个基于Struts架构的应用程序中配置使用这些基本的Validator。
  使Validator框架具有弹性的原因在于所有的验证规则和其具体细节都是通过在外部文件中配置声明实现的。你的应用程序并不必要知道这些具体的验证规则。这一特征使得规则集的发生扩展和修改时,你并不用去动你应用程序的源代码。这一点对你要进行每次的个性化安装或当需求发生变化时来说是非常重要的。
  假如你使用Struts1.1的Validator框架,你会用到这样两个配置文件,一个叫validator- rules.xml,另一个叫validation.xml;其实你也可以随意的给他们命名,甚至可以把它们合并成一个XML文件。但是,你还是最好把它们分开,因为它们各有各的用途。
  
  注重:假如你从Jakarta网站上下载Validator,并不包含这两个文件。只有在包含的Validator框架的Struts的下载中才可以找到这两个文件。
  validator-rules.xml文件
  validator-rules.xml文件定义应用程序可以使用的Validator。validator-rules.xml充当模板的作用,定义所有应用程序可能要用到的Validator。
  
  注重:这个xml文件和我们下面要讨论的另一个xml文件都应该放到类加载器可以找得到的地方。当我们在Web应用程序中使用Validator框架时,正确的位置应该是在WEB-INF下。 
  validator-rules.xml文件服从validator- rules_1_1.dtd的治理,validator- rules_1_1.dtd可以在jakarta.apache.org/struts/dtds/validator- rules_1_1.dtd下载到。我们并不想花太多的时间放在研究这个文件的具体细节上,我们在这儿只作一些基本的介绍。
  validator-rules.xml文件中最重要的元素包含在元素中,例如,例一:
  例一:一个简单的validator-rules.xml文件
  
  
        name="required"
     classname="org.apache.struts.util.StrutsValidator"
     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="errors.required"/>
     
        classname="org.apache.struts.util.StrutsValidator"
     method="validateMinLength"
     methodparams="java.lang.Object,
            org.apache.commons.validator.ValidatorAction,
            org.apache.commons.validator.Field,
            org.apache.struts.action.ActionErrors,
            javax.servlet.http.HttpServletRequest"
   depends="required"
       msg="errors.minlength"/>
  

  

   
  
  
  应用程序使用的每个Validator对应一个元素。在例一中给大家展示了两个Validator,一个是请求Validator,另一个是最小长度Validator。元素支持许多属性。这些属性是必要的,用于告知框架这个Validator应当调用哪个正确的类和方法。例如,例一中的请求Validator元素表明这个Validator将调用org.apache.struts.util.StrutsValidator类的validateRequest()方法。Validator也可能要依靠另一个Validator,如例一中的最小长度的Validator就是这样一个例子,它包含一个depends属性,用它来表示这个Validator将依靠于请求Validator。msg属性用一个键值指定一个资源绑定,框架将用它来生成正确的错误信息。资源绑定的使用有益于错误信息的本地化。
    元素还支持子元素,答应你指定一个客户端运行的javascript函数。这样服务器端和客户端验证可以在同一处指定,这使应用程序的维护变得简单。
  
  validation.xml文件
  Validator框架的第二个配置文件就是这个叫validation.xml的文件。其实你可以随意把它命名为你喜欢的任何名字,也 

 以上就是在Struts中使用Validator框架内容,更多相关文章请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbincangan mendalam tentang prinsip dan amalan rangka kerja Struts Perbincangan mendalam tentang prinsip dan amalan rangka kerja Struts Feb 18, 2024 pm 06:10 PM

Analisis prinsip dan penerokaan praktikal rangka kerja Struts Sebagai rangka kerja MVC yang biasa digunakan dalam pembangunan JavaWeb, rangka kerja Struts mempunyai corak reka bentuk dan skalabiliti yang baik dan digunakan secara meluas dalam pembangunan aplikasi peringkat perusahaan. Artikel ini akan menganalisis prinsip rangka kerja Struts dan menerokanya dengan contoh kod sebenar untuk membantu pembaca memahami dan menggunakan rangka kerja itu dengan lebih baik. 1. Analisis prinsip rangka kerja Struts 1. Seni bina MVC Rangka kerja Struts adalah berdasarkan MVC (Model-View-Con

Analisis prinsip kerja rangka kerja Struts2 Analisis prinsip kerja rangka kerja Struts2 Jan 05, 2024 am 08:29 AM

Meneroka mekanisme dalaman rangka kerja Struts2 Struts2 ialah rangka kerja aplikasi JavaWeb yang popular yang digunakan secara meluas untuk membangunkan aplikasi Web berdasarkan seni bina MVC. Ia telah membuat banyak penambahbaikan dan pengoptimuman berdasarkan Struts1, menyediakan fungsi yang lebih berkuasa dan fleksibel. Sebelum kita menyelidiki kerja dalaman rangka kerja Struts2, kita perlu memahami beberapa konsep asas. Teras rangka kerja Struts2 ialah MVC (Model-View-Controlle

Pembangunan backend Java: Pembangunan rangka kerja API MVC menggunakan Java Apache Struts Pembangunan backend Java: Pembangunan rangka kerja API MVC menggunakan Java Apache Struts Jun 17, 2023 am 10:03 AM

Dengan populariti Internet dan peranti mudah alih pintar, pembangunan aplikasi web menjadi semakin penting. Sebagai bahasa pengaturcaraan merentas platform yang sangat baik, Java digemari oleh pembangun. Dalam pembangunan back-end Java, menggunakan rangka kerja MVC boleh membantu kami meningkatkan kecekapan pembangunan dan mengurangkan kos pembangunan. Artikel ini akan memperkenalkan pembangunan rangka kerja MVC API menggunakan JavaApacheStruts. 1. Rangka kerja MVC MVC (Model-View-Contro

Apakah prinsip dan aplikasi rangka kerja tupang? Apakah prinsip dan aplikasi rangka kerja tupang? Jan 03, 2024 pm 05:31 PM

Prinsip rangka kerja struts: Dengan menggunakan teknologi Java Servlet/JSP, rangka kerja aplikasi berdasarkan corak reka bentuk MVC bagi aplikasi Web Java EE dilaksanakan. Ia menggunakan satu atau lebih kelas Tindakan untuk memproses permintaan pengguna dan mengembalikan hasilnya kepada pengguna . Penggunaan rangka kerja struts: 1. Membina aplikasi Web; 2. Memproses data borang; 3. Mengintegrasikan perpustakaan pihak ketiga;

Pengenalan kepada rangka kerja Struts dalam bahasa Java Pengenalan kepada rangka kerja Struts dalam bahasa Java Jun 10, 2023 pm 08:00 PM

Pengenalan kepada Rangka Kerja Struts dalam Bahasa Java Dengan populariti aplikasi Web secara beransur-ansur, seperti tapak web Web dan sistem aplikasi perusahaan, seni bina JavaEE (Edisi Perusahaan) secara beransur-ansur menjadi pilihan arus perdana. Dalam seni bina JavaEE, disebabkan kepopularan corak reka bentuk MVC (Model-View-Controller), rangka kerja Struts telah menjadi salah satu rangka kerja aplikasi web yang biasa digunakan. Dalam artikel ini, kita akan melihat lebih dekat

Analisis terperinci prinsip pelaksanaan rangka kerja Struts2 Analisis terperinci prinsip pelaksanaan rangka kerja Struts2 Feb 21, 2024 pm 05:54 PM

Analisis terperinci tentang prinsip pelaksanaan rangka kerja Struts2 Sebagai rangka kerja aplikasi JavaWeb yang digunakan secara meluas, reka bentuk dan prestasi terbaik rangka kerja Struts2 menjadikannya alat kegemaran untuk pembangun. Memahami prinsip pelaksanaan rangka kerja Struts2 adalah sangat penting untuk meningkatkan pemahaman pembangun dan tahap aplikasi rangka kerja. Artikel ini akan menganalisis prinsip pelaksanaan rangka kerja Struts2 secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca memahami rangka kerja ini dengan lebih mendalam. 1. Pengenalan ringkas rangka kerja Struts2

Analisis mendalam tentang mekanisme pengendalian rangka kerja Struts2 Analisis mendalam tentang mekanisme pengendalian rangka kerja Struts2 Jan 05, 2024 pm 03:36 PM

Analisis mendalam tentang prinsip kerja rangka kerja Struts2 Struts2 ialah rangka kerja pembangunan aplikasi Web Java yang sangat baik Ia menyediakan kaedah pembangunan berdasarkan corak MVC (Model-View-Controller) untuk membantu pembangun membina dan menyelenggara aplikasi Web dengan lebih cepat. Memahami prinsip kerja rangka kerja Struts2 adalah sangat penting untuk pembangun Artikel ini akan membantu pembaca memperoleh pemahaman yang mendalam tentang prinsip kerja rangka kerja Struts2 melalui analisis terperinci dan contoh kod khusus.

Terokai prinsip dan aplikasi rangka kerja tupang Terokai prinsip dan aplikasi rangka kerja tupang Jan 04, 2024 am 08:19 AM

Analisis mendalam tentang prinsip dan aplikasi rangka kerja Struts Ringkasan: Rangka kerja Struts ialah rangka kerja pembangunan aplikasi JavaWeb yang sangat baik Ia berdasarkan corak reka bentuk MVC dan satu siri perpustakaan teg dan pemintas, menyediakan pembangun dengan mudah dan standard. cara untuk membina aplikasi web. Artikel ini akan memberikan analisis mendalam tentang prinsip dan aplikasi rangka kerja Struts, termasuk prinsip kerja rangka kerja, komponen utama dan kod sampel untuk menunjukkan aplikasi khususnya. 1. Prinsip kerja rangka kerja Struts Struts

See all articles