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

Struts 2.0 验证

阅读更多

概述

        Struts 2.0目前支持基本验证,客户端验证,Ajax验证,因为Ajax验证需要DWR和Dojo的支持,Dojo的性能一向不是很好,而且使用相当复杂,因此 个人倾向于仅使用基本验证功能,下面介绍如何使用基本验证。

注册验证器

        如果需要添加自定义的验证器实现,必须进行注册,最简单的注册方法是创建一个validators.xml,保存在WEB-INF/classes目录 下,如果仅使用系统提供的验证器,这一步可以省略。

启动拦截器

        要使验证生效,需要针对请求配置验证拦截器。注意:框架提供的验证拦截器会在发生验证错误时,继续执行Action,很怪异的行为。如果验证失败要阻止继续执行,可以在执行每个Action之前判断是否有字段错误决定是否继续执行。

定义验证规则

        验证规则可以针对每一个Action,比如 ActionName-validation.xml ,也可以针对Action的接口和超类。目前有两种验证器,通用验证器和字段验证器,通用验证器有更高的优先级。

        配置验证器时可以指定short-circuite属性,以终止其他验证器执行。 如果发生验证错误,通用验证器将停止其他验证器的运行,而字段验证器只会停止针对同一个字段的其他验证器的执行。

检索验证错误

        Action提供getFieldErrors和getActionErrors方法用来获取字段验证错误,和通用验证错误。另外Struts提供<s:fielderror>和<s:actionerror>标记用于检索错误。</s:actionerror></s:fielderror>

        注意:

  • 此标记需要Freemark的支持,请确认freemark库文件的存在。
  • UI标记只在特定的theme才能生效。

        比如使用XHTML标记,需要在HTML文件的head区域使用如下标记标识使用的theme:

xml 代码
  1. <head>  
  2.         <s:head theme="xhtml"/>  
  3. head>  
  4.   
  5. <body>  
  6.         <s:fielderror/>  
  7. body>  

 实践

笔者是使用spring整合struts的,在执行验证时发现,如果同一个字段多次验证失败,会保存多个相同的验证消息,也就是上一次请求的错误信息并没有清除点,进一步讲应该是两次请求使用的是同一个Action实例,是什么原因呢?

解决方案:后来发现是spring配置的action实例缺省是基于会话的,也就是在内存中会缓存action实例,更改配置的scope属性即可,示例如下:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3. <beans default-autowire="byName" default-lazy-init="true">  
  4.     <bean id="customerAction" class="org.quickj.samples.web.CustomerAction" scope="request"/>  
  5. </beans> 
分享到:
评论

相关推荐

    struts 2.0 验证框架

    综上所述,Struts 2.0的验证框架通过定义XML配置文件和资源文件,实现了对用户输入的有效性检查,提高了应用程序的安全性和用户体验。通过合理配置和使用,开发者可以构建出更加健壮和可靠的Web应用。

    Struts2.0视频教程+struts2.0中文教程

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...

    struts2.0的特点

    Struts2.0采用了拦截器(Interceptor)机制,这是一种非常强大的特性,允许开发者在Action执行前后进行一系列操作,如参数填充、验证、事务控制等。拦截器的设计遵循AOP(Aspect Oriented Programming)思想,可以...

    struts2.0用户验证

    struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证struts2.0用户验证

    Struts2.0的api

    Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...

    Struts2.0 Jar包

    Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    5. **插件机制**:Struts2.0有丰富的插件库,如Freemarker和Velocity模板引擎,JSON和XML数据处理,以及各种验证框架的集成,大大增强了框架的功能和灵活性。 6. **异常处理**:Struts2.0提供了全局的异常处理机制...

    初识[Struts2.0]并[使用Struts2.0]进行SSH集成

    用户登录通常包括用户输入验证、数据库查询等操作,这些可以通过Struts2.0的Action实现,而数据库交互则通过Hibernate完成,Spring则负责连接管理、事务处理等。 在实际开发中,我们首先需要配置Struts2.0的struts....

    struts 2.0 详细配置

    ### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...

    Struts2.0学习系列 以及 Struts2.0安装包

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并...

    Struts 2.0全攻略之Struts 2.0参考手册

    拦截器是Struts 2.0的一个核心特性,它们在Action执行前后执行,可以用于日志记录、权限验证、数据校验等。开发者可以通过自定义拦截器扩展框架功能。 6. **OGNL(Object-Graph Navigation Language)** Struts ...

    Struts_2.0从入门到精通

    Struts2.0引入了一系列新的表单标签,如、、等,它们提供了更丰富和灵活的表单元素,支持客户端验证和服务器端验证的无缝集成。 十三、Struts2.0与AJAX的融合 AJAX技术的兴起,为Web应用带来了全新的交互体验。...

    struts2.0环境配置

    Struts2.0是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,提供了一种结构化的解决方案,用于构建更健壮、可维护的Web应用程序。本教程将详细讲解如何在Myeclipse集成开发环境中...

    struts2.0英文文档

    ### Struts2.0 关键知识点解析 #### 一、Struts2.0 概述 Struts2.0 是一款基于 Java 的开源 Web 应用框架,它继承了 Struts1.x 的设计理念并在此基础上进行了大幅改进。Struts2.0 主要面向企业级应用开发,提供了一...

    Struts 2.0的Action讲解

    总的来说,Struts 2.0的Action模型通过`ActionSupport`类提供了一套完整的解决方案,包括业务逻辑处理、错误处理、验证和国际化等功能。开发者可以根据需求选择继承`ActionSupport`或自定义Action类,以实现更灵活的...

    struts2.0的基本jar包

    Struts2.0是一个强大的Java Web应用程序框架,它基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用的开发流程。这个压缩包包含的是Struts2.0的核心库和其他必要的JAR文件,这些文件对于创建一个基于...

    struts2.0源代码

    Struts2.0是Apache软件基金会的一个开源框架,主要用于构建基于Java EE的Web应用程序。它在原有的Struts1.x的基础上进行了重大改进,引入了更多现代Web开发的最佳实践和设计模式,提高了开发效率和代码可维护性。这...

    struts2.0所有jar包

    Struts2.0是Java Web开发中非常流行的一个MVC框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,为开发者提供了强大的功能和灵活的架构。这个压缩包包含了Struts2.0框架运行所需的所有jar包,使得...

Global site tag (gtag.js) - Google Analytics