`
flyingis
  • 浏览: 297919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重温Struts--Validator和Tiles

阅读更多

作者:Flyingis<o:p></o:p>

今天要回顾的是ValidatorTiles以及简单的Plugin实现,刚刚登录blogjava就发现Mustang已经发了两篇好文《在Struts中使用Validator实现可配置的信息校验() ()》,本文则从实现流程来总结Validator的使用方法,并针对ValidatorTilesStruts PlugIn插件略谈一些个人心得。

Validator<o:p></o:p>

在使用ActionForm时,将数据的验证工作放在validator()方法中虽说是一个可行的方法,但在ActionForm中编写特定的验证逻辑会降低ActionForm的重用性,并给系统的维护带来麻烦。Validator框架可以将验证逻辑移至ActionForm之外,实现Javascript客户端验证或服务器段验证。具体实现Validator验证步骤如下:<o:p></o:p>

1.        Validator是以plugin的方式来扩充ActionServlet功能的,需要在Struts-config.xml中声明这个plugin<o:p></o:p>

2.        导入Validator中的资源信息,用来向用户提示验证中出现的异常消息。Validator可以支持国际化信息,为每一个国际化信息提供对应的资源信息。<o:p></o:p>

3.        利用validaton.xml文件来定义用户需要验证的每一个JSP表单中的每一个字段的验证规则,其中可以利用validator-rules.xml中已经设计好了的验证器,也可以自定义验证方式。<o:p></o:p>

4.        客户端验证需要validator-rules.xml中已提供的验证规则,或是自定义规则,然后在jsp页面中声明 <html:form style="" action="“/&amp;lt;I"> action.do” onsubmit=“return validateActionForm(this);”> </html:form> ,加上可以生成实现验证的Javascript代码 <html:javascript style="" formname="“&amp;lt;I"> ActionForm” staticJavascript=“true”/> </html:javascript> 。服务器端验证同样需要validator-rules.xml中已提供的验证规则,或是自定义规则,另外,实现验证的ActionForm需要是DynaActionForm的子类,和客户端验证不同的是,在捕获服务器端错误消息时,jsp页面中需要嵌入代码<o:p></o:p>

<html:messages id="“error”"> <o:p></o:p> </html:messages>

  <bean:write name="“error”/"><o:p></o:p></bean:write>

<o:p></o:p>

在配置和设计Web系统验证功能的时候,需要注意的是要理解在validaton.xml中定义验证规则的时候每个参数的具体功能,我最初使用Validator的时候就因为参数混淆而验证失败,费了一点时间。还有就是自定义验证规则时,需要注意每个参数的具体含义,例如在某种情况下,validaton.xml<var-name>myproperty</var-name>中自定义的属性myproperty需要和自己编写的验证器类中的代码一致等等。<o:p></o:p>

Tiles<o:p></o:p>

Tiles是一个模板机制,它可以让网页的配置框架和内容分离,提供一个版面管理机制。通常有两种方式管理Tiles配置资源,一种使用XML,另一种使用JSP页面直接管理。<o:p></o:p>

使用XML配置的Tiles可以支持国际化,例如可以另存为tiles-defs.xml并命名为tiles-defs_zh.xml,将encoding改为GB2312,这样可以在配置中使用中文。使用XML配置文件可以方便的实现版面配置和内容的分离,并且能扩充某个定义,达到重新定义其中所管理页面资源的目的。使用JSP页面直接定义管理版面的配置资源更为简单和灵活,同样可以和xml一样重新定义网页的地址。不使用JSP框架页面而是直接在JSP页面中使用配置页面,可以不用额外去定义管理文件,但缺点是无法重用这个页面定义的内容。<o:p></o:p>

TilesCSS结合起来,基本上能满足一般页面控制的需要。<o:p></o:p>

PlugIn插件<o:p></o:p>

通过继承ActionSerlvet,重写它的init()方法,修改或增减它的初始化资源来达到改变ActionServlet功能的方法,这从软件架构角度上来讲并不是一个好方法。Struts1.1之后,可以通过PlugIn接口来实现动态增减ActionServlet功能的目的。ActionServlet加载后,会执行实现PlugIn接口的类的init()方法,在ActionServlet终止前,执行实现PlugIn接口的类的destroy()方法。ValidatorTiles就是利用这种方式来扩充Struts功能的。<o:p></o:p>

写到这里,感觉使用好ValidatorTilesPlugIn插件最重要的就是对配置元素的理解,和程序调用流程的掌握,了解到Struts的插件机制是如何运转的,以此来扩充Web应用程序的功能,提供更好的用户体验。<o:p></o:p>

分享到:
评论

相关推荐

    struts-tiles和validator-strut2教程pdf

    Struts和Tiles以及Validator是Java Web开发中非常重要的框架,它们是Apache Struts项目的一部分,用于构建企业级的MVC(Model-View-Controller)应用。让我们深入了解一下这两个组件及其在Struts 2中的整合。 ...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    5. **性能优化**:虽然JSON Schema验证可能涉及复杂的递归和规则检查,但`json-schema-validator`通过缓存和优化验证过程,确保了良好的性能。 在实际使用中,首先需要将`json-schema-validator`库添加到项目依赖中...

    3d-tiles-validator-0.4.1

    3d-tiles数据格式检查工具 https://github.com/CesiumGS/3d-tiles-validator

    struts-1.3.8-lib(new)

    4. **struts-tiles.jar**:用于页面布局和组合,提供Tiles定义和控制器。 5. **struts-logic.jar**:提供了逻辑控制的标签,如if、iterate等。 6. **struts-navigator.jar**:提供了一些导航和辅助功能。 7. **...

    struts-2.3.30-all所有jar包

    commons-validator-1.3.1.jar, core-0.6.2.jar, dwr-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.22.jar, google-collections-1.0.jar, google-gxp-0.2.4-beta.jar, guava-r09.jar, jackson-core-asl-1.9.2.jar, ...

    json-schema-validator-2.2.3.jar

    json-schema-validator-2.2.3.jar

    3d-tiles-validator:用于调试、分析和验证现有 3D Tiles 图块集的工具

    用于验证tileset是否符合3D Tiles规范的开源Node.js库和命令行工具。 用于在生成示例 3D Tiles 的开源命令行工具 由和宾夕法尼亚大学的学生创建。 要生成新的 3D 图块集,请参阅 。 贡献 拉取请求表示赞赏! 请使用...

    Laravel开发-laravel-ec-validator

    开发者可以通过查看`ec-laravel-validator-master`目录下的源代码来进一步学习这些验证规则的实现细节。 在部署`laravel-ec-validator`到项目中时,你需要按照标准的Composer流程进行操作,将扩展包添加到`composer...

    前端开源库-vue-template-validator

    **Vue-template-validator** 是一个专为前端开发者设计的开源库,其主要功能是在Vue应用程序的编译阶段对Vue模板进行验证。这个工具旨在帮助开发者在项目构建早期发现并修复潜在的错误,从而提高代码质量和应用稳定...

    Laravel开发-laravel-kickbox-validator

    总的来说,`lararavel-kickbox-validator`扩展包是Laravel开发者的一个强大工具,它提高了电子邮件验证的效率和准确性,帮助维护应用数据的质量,防止无效数据的输入。通过简单易用的接口,开发者可以快速集成电子...

    android-edittext-validator-master.zip

    "android-edittext-validator-master.zip" 是一个专为Android平台设计的项目,专注于EditText组件的验证功能。这个项目提供了一种方便的方式来验证用户在EditText字段中输入的信息格式。 EditText是Android SDK中的...

    Laravel开发-laravel-email-validator

    `laravel-email-validator`是一个专门用于增强Laravel邮箱验证功能的工具,它提供了更强大的外观(Facade)来帮助开发者验证和确认电子邮件地址的有效性。这个库可能是为了弥补Laravel内置验证规则的不足,提供更...

    struts1.x使用common-validator验证框架

    2. **创建验证规则文件**:在Web应用的资源目录下,例如`WEB-INF/validator-rules.xml`,定义验证规则。在这个XML文件中,你可以配置字段的验证规则,如非空、长度限制、格式检查等。 3. **编写表单Bean**:为每个...

    Laravel开发-laravel-media-validator

    `laravel-media-validator` 是一个专门为 Laravel 设计的扩展包,用于帮助开发者更方便、更安全地验证上传的音频和视频文件。这个扩展包的核心功能是提供自定义的验证规则,确保上传的媒体文件符合特定的格式、大小...

    struts-1.3.10-all

    10. **struts-tiles-1.3.10.jar**:Struts Tiles扩展,提供了一种强大的布局和组合页面的机制,使开发者可以创建复杂的可重用的页面模板。 这些组件共同构成了Struts 1.3.10框架的核心功能,使得开发人员能够遵循...

    jakarta-struts-1.2.4-src.zip_jakarta struts 1_jakarta struts-1.1

    `jakarta-struts-1.2.4-src.zip` 包含了Struts 1.2.4的完整源代码,开发者可以借此深入了解框架的内部实现,学习其设计思路。主要的源代码目录结构如下: - `org.apache.struts.action`:包含Action和ActionForm...

    openapi-schema-validator:OpenApi 版本 v2、v3.0.x 和 v3.1.x 的 OpenApi 架构验证

    import Validator from "@seriousme/openapi-schema-validator" ; // CommonJS const Validator = require ( "@seriousme/openapi-schema-validator" ) ; console . log ( Validator . supportedVersions . has ( ...

    struts-1.2.5-lib.zip

    6. **Tiles**:Struts 1.2.5中集成了Tiles框架,它允许开发者创建可重用的页面布局,提高了视图的组织和管理能力。 7. **国际化和本地化**:Struts支持多语言环境,可以通过资源文件实现应用程序的国际化和本地化。...

    json-schema-validator-maven-plugin:用于使用 json-schema-validator 的 Maven 插件

    JSON 模式验证器 Maven 插件一个 Apache Maven (3.2.1+) 插件,用于根据 JSON 模式验证项目中的一...schema-validator-maven-plugin&lt;/artifactId&gt; &lt;version&gt;1.0-beta-1&lt;/version&gt; &lt;executions&gt; &lt;execution&gt;

    Laravel开发-extended-laravel-validator

    `extended-laravel-validator`则进一步增强了Laravel内置的验证系统,提供了更多定制化和实用的验证规则。 ### Laravel验证系统概述 Laravel的验证系统允许开发者在处理表单提交时轻松地验证用户输入。它通过`...

Global site tag (gtag.js) - Google Analytics