即使你对Struts内建验证程序的内部情况一无所知,也不影响你使用它们。可如果你想编写你自己的验证程序,就必须对用来实现Struts验证程序的各个类和它们的注册机制有一定的了解。
验证程序必须实现Validator接口,它是com.opensymphony.xwork2.validator包的一部分。图8-15给出了这个接口、它的子接口和实现类。
我在图8-15里省略了包的名字。Validator、FieldValidator和ShortCircuitable- Validator接口属于com.opensymphony.xwork2.validator包,其他的组件属于com.opensymphony. xwork2.validator.validators包。Validator接口的定义见代码清单8-39。
|
(点击查看大图)图8-15 Validator接口和支持类型 |
代码清单8-39 Validator接口
alidation拦截器负责加载和执行各种验证程序。在加载了一个验证程序之后,这个拦截器将调用那个验证程序的setValidatorContext方法,并把当前的ValidatorContext对象传递给它,这使我们可以访问当前动作。接下来,Validation拦截器将调用validate方法并把需要验证的对象传递给它。validate方法是你在编写一个自定义的验证程序时需要覆盖的方法。
对便捷类ValidatorSupport或FieldValidatorSupport进行扩展要比自行实现Validator接口容易得多。如果你想创建一个普通的验证程序(非字段验证程序),请扩展ValidatorSupport类。如果你想编写一个字段验证程序,请扩展FieldValidatorSupport类。如果你设计的验证程序能够接受一个输入参数,你还需要为这个参数增加一个相应的属性。例如,如果你的验证程序允许一个minValue参数,你还需要增加一个名为minValue的属性,并为它编写getter方法和setter方法。
ValidatorSupport类增加了几个方法,下面3个是便捷方法,你可以从验证程序类里调用它们。
返回object对象的name字段的值。
增加一个动作错误。
增加一个字段错误。
如果你编写的是一个非字段验证程序,在验证失败时需要从validate方法调用addActionError方法;如果你编写的是一个字段验证程序,在验证失败时需要从validate方法调用addFieldError方法。
FieldValidatorSupport类扩展了ValidatorSupport类并新增了propertyType和fieldName两个属性。
代码清单8-40给出了RequiredStringValidator类的源代码,requiredstring验证程序就是用这个底层类实现的。
代码清单8-40 RequiredStringValidator类
requiredstring验证程序可以接受一个trim参数,所以RequiredStringValidator类需要有一个相应的trim属性。如果有一个trim参数被传递给这个验证程序,Validation拦截器就会调用trim属性的setter方法。
validate方法负责具体进行有关的验证。如果验证失败,这个方法必须调用addFieldError方法。
- 大小: 43.3 KB
- 大小: 27.2 KB
- 大小: 7.8 KB
- 大小: 4.7 KB
- 大小: 5.3 KB
- 大小: 37.6 KB
分享到:
相关推荐
### Struts2 自定义验证程序的实现方法详解 #### 一、Struts2 内建验证程序实现的分析 在探讨如何实现自定义验证程序之前,我们先来了解一下 Struts2 的内置验证机制。Struts2 提供了丰富的内置验证器(Validator...
8. **Validation框架**:Struts2提供了强大的表单验证功能,可以在Action级别或全局级别定义验证规则。 9. **Plug-in扩展性**:Struts2支持丰富的插件系统,可以方便地集成其他框架,如Spring、Hibernate等。 在`...
本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...
自定义验证器通常是一个实现了`org.apache.struts2.validator.Validator`接口的Java类。你需要覆盖`validate`方法,该方法接受一个`ActionContext`对象和`FieldErrors`对象,用于存放验证错误。在这个方法内,编写...
总结,这个“struts2的自定义校验器例子”展示了如何在Struts2中为特定需求创建自定义验证逻辑,确保服务器端数据的有效性和安全性。通过实现自定义校验器,开发者可以灵活地控制输入数据的验证规则,提高应用程序的...
4. **编写自定义标签**:创建JSP标签库,实现分页的展示逻辑。标签需要解析Action返回的PageBean对象,生成相应的HTML元素,如页码链接。 5. **在视图层使用标签**:在JSP页面上,引入自定义标签库,通过标签调用来...
自定义校验主要是通过编写自定义校验器或扩展内置校验器来实现。 2. **自定义校验器实现** 自定义校验器是Struts2验证机制的核心部分。要创建一个自定义校验器,需要继承`org.apache.struts2.validator....
为了实现自定义验证,你需要创建一个继承自Struts1提供的`ActionForm`类的子类,并在这个子类中定义你所需的字段。 2. **添加验证方法**:在ActionForm子类中,你需要为每个需要验证的字段添加一个对应的`validate`...
自定义验证框架是Struts的一个强大功能,允许开发者根据特定的业务需求定制验证逻辑。以下将详细介绍如何在Struts中实现自定义验证框架,以及其关键组件和工作流程。 1. **配置验证规则**: 在Struts中,验证规则...
在Struts2中,自定义拦截器是实现业务逻辑控制、数据验证、权限管理等功能的重要手段。下面将详细探讨如何在Struts2中实现自定义拦截器来完成权限拦截。 首先,我们需要了解Struts2拦截器的工作原理。拦截器是在...
自定义验证器需要实现`org.apache.struts2.validator.FieldValidator`接口,重写`validate()`方法。然后在`validation.xml`中指定自定义验证器类型。 例如,创建一个检查邮箱格式的自定义验证器: ```java public ...
自定义标签是Struts2中的一项重要特性,它允许开发者创建自己的HTML标签,以更直观、简洁的方式编写视图层代码,提高开发效率和代码可读性。在本篇文章中,我们将深入探讨Struts2的自定义标签机制及其应用。 首先,...
通常,Struts2框架内置了一些基本类型的转换器,但有时我们需要对特定的数据类型进行自定义转换,这时就需要编写自定义的转换类。下面将详细讲解如何在Struts2中实现自定义转换类。 首先,了解Struts2的转换机制。...
- 如何利用Struts 2的插件系统扩展功能,如国际化、验证等。 理解Struts 2的架构和工作流程,对于任何Java Web开发者来说都至关重要,无论是为了优化现有项目,还是开发新的应用。而通过实践自定义框架,我们可以更...
总之,Struts2的表单验证功能强大且可定制,开发者可以通过调整配置、编写自定义结果类型和优化错误展示,来实现符合项目需求的验证机制。对于理解和掌握Struts2的表单验证,阅读和分析提供的`client`文件将是非常...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序。拦截器是Struts2框架的核心特性之一,它们扮演着类似中间件的角色,可以在动作执行前后执行一些预处理或后处理任务。自定义...
在这个“struts2连接mysql数据库登录验证程序”中,我们主要探讨以下几个关键知识点: 1. **Struts2框架**:Struts2作为MVC设计模式的实现,负责处理HTTP请求,通过Action类将用户请求映射到业务逻辑,并将结果传递...
1. **重写validate()方法**:这是最基础的方式,所有Action类都需要继承ActionSupport类,然后在validate()方法中编写自定义的验证逻辑,该方法会针对所有处理逻辑进行验证。 2. **重写validateXxx()方法**:为了...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式。...通过理解和熟练运用自定义拦截器,开发者可以更好地驾驭Struts2框架,构建高效、可维护的Java web应用程序。
文件名`struts2-6-test-2`可能包含了相关的测试代码或配置,用于验证自定义类型转换器的效果。 自定义类型转换器允许我们更灵活地处理数据绑定过程中的类型转换问题,提高代码的可维护性和可扩展性。通过以上步骤,...