`
jaesonchen
  • 浏览: 309874 次
  • 来自: ...
社区版块
存档分类
最新评论

struts使用自定义validator

 
阅读更多
validators.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
		"-//Apache Struts//XWork Validator Definition 1.0//EN"
        "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd">

<validators>
	<validator name="passwordintegrity"	class="com.jaeson.struts.validator.PasswordIntegrityValidator" />
</validators>

 

import java.util.regex.Pattern;
import java.util.regex.Matcher;

import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;

public class PasswordIntegrityValidator extends FieldValidatorSupport {
	
	static Pattern digitPattern = Pattern.compile("[0-9]");
	static Pattern letterPattern = Pattern.compile("[a-zA-Z]");
	static Pattern specialDefaultPattern = Pattern.compile("[!@#$]"); 
	
	@Override
	public void validate(Object object) throws ValidationException {
		
		String fieldName = this.getFieldName();
		String fieldValue = (String) this.getFieldValue(fieldName, object);
		fieldValue = fieldValue.trim();
		
		Matcher digitMatcher = digitPattern.matcher(fieldValue);
		Matcher letterMatcher = letterPattern.matcher(fieldValue);
		Matcher specialMatcher;
		
		if (this.getSpecialCharacter() != null) {
			Pattern specialPattern = Pattern.compile("[" + this.getSpecialCharacter() + "]");
			specialMatcher = specialPattern.matcher(fieldValue);
		} else {
			specialMatcher = specialDefaultPattern.matcher(fieldValue);
		}
		
		if (!digitMatcher.find()) {
			this.addFieldError(fieldName, object);
		} else if (!letterMatcher.find()) {
			this.addFieldError(fieldName, object);
		} else if (!specialMatcher.find()) {
			this.addFieldError(fieldName, object);
		}
		
	}
	
	private String specialCharacter;
	
	public String getSpecialCharacter() {
		return specialCharacter;
	}
	public void setSpecialCharacter(String specialCharacter) {
		this.specialCharacter = specialCharacter;
	}
	
}

 

validators.xml放在与struts.xml相同的目录下

 

分享到:
评论

相关推荐

    struts自定义Validator示例

    struts中自定义validator验证 &lt;br&gt;很多时候需要验证“密码”与“重复密码”是否一致,如果放在服务器端验证就浪费资源了。 如何在客户端进行验证呢?JS可以实现,但是struts的validator框架是否能实现呢?-见...

    struts验证器validator使用,以及自定义验证器

    本文将详细介绍Struts验证器Validator的使用,包括基础配置、自定义验证器的创建,以及如何在Maven项目中管理和使用Eclipse进行编译。 **一、Struts验证器Validator的基本概念** Struts Validator是Struts框架提供...

    Struts1的validator验证框架

    ### Struts1的Validator验证框架详解 ...然而,随着技术的发展,现代Web应用可能更倾向于使用Spring MVC、AngularJS等新兴框架,但Struts1的Validator框架依然有其不可替代的价值,特别是在遗留系统维护和优化方面。

    struts中使用validator验证框架

    在本文中,我们将深入探讨如何在Struts中使用Validator框架,并通过三个逐步进阶的实例来理解其工作原理。 首先,我们来看第一个实例——Validator_Struct_01。在这个基础案例中,我们将了解如何设置基本的...

    自定义 validate验证 struts1框架

    3. **配置struts-config.xml**:在项目的`struts-config.xml`配置文件中,你需要将自定义的ActionForm与相应的Action进行关联,并指定表单验证使用的ActionForm类。同时,可以在这里配置全局错误消息,以及默认的...

    03_张孝祥09年Struts视频_validator单元3.rar

    在这个压缩包的文件列表中,很可能是各个视频文件,详细讲解了如何配置和使用Struts的Validator组件,包括: - 如何设置Validator规则文件 - 如何创建验证所需的Java表单bean - 如何在struts-config.xml中配置动作...

    Struts2自定义校验框架

    - XML配置:在`struts.xml`或相应的Action配置文件中,使用`&lt;validators&gt;`标签定义自定义校验器,通过`&lt;field-validator&gt;`指定需要应用该校验器的字段。 - 注解配置:在Action类的属性上使用自定义注解,通过注解...

    struts1.3实现的Validator简单验证

    下面我们将详细介绍Struts1.3中Validator的使用和与Struts1.2的区别。 1. 配置文件:在Struts1.3中,Validator的配置通常位于`validation.xml`文件中,这里定义了验证规则和错误消息。每个ActionForm对应一个验证...

    Struts的Validator-rules详解

    5. **自定义验证器**:除了预定义的验证类型,开发者还可以通过创建自定义Validator类来扩展验证功能。这可以通过设置`type`属性为自定义类的全限定名,并在`param`子元素中传递必要的参数。 6. **验证流程**:当...

    struts 的validator框架验证

    此外,Struts的Validator框架还支持自定义验证器。你可以通过实现`FieldAwareValidator`接口或继承`FieldAwareValidatorSupport`类来自定义自己的验证规则,满足更复杂的业务需求。 TestHib可能是一个测试Hibernate...

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

    在Bean的属性上使用`@Validate`注解(如果使用的是Struts-Validator框架,否则是JSR-303或JSR-349的注解)来指定验证规则。 4. **配置Struts配置文件**:在`struts-config.xml`中,配置ActionForm指向刚刚创建的...

    struts validator验证框架项目

    除了Struts,Struts Validator还可以与其他MVC框架(如Spring MVC)结合使用,通过适配器或AOP机制实现验证逻辑的共享。 7. **最佳实践** - 将验证逻辑与业务逻辑分离,以保持代码的清晰性和可维护性。 - 使用...

    struts2 自定义验证程序的实现方法详解

    为了实现自定义的验证器,首先需要继承或实现 Struts2 的 Validator 接口。该接口定义了一些基本的方法,用于处理验证过程中的各种逻辑。例如,下面展示了这个接口的基本结构: ```java public interface Validator...

    struts 2.0自定义验证器

    自定义验证器通常是一个实现了`org.apache.struts2.validator.Validator`接口的Java类。你需要覆盖`validate`方法,该方法接受一个`ActionContext`对象和`FieldErrors`对象,用于存放验证错误。在这个方法内,编写...

    struts1.x validator框架验证入门例子

    自定义验证器需要实现org.apache.struts.validator.Validator接口,并在ValidatorRule.xml中引用。 五、错误处理 当验证失败时,Struts会将错误信息添加到ActionErrors集合中。在JSP页面中,可以通过logic:errors...

    Struts简单的Validator 表单验证类

    Struts的Validator框架是Java Web开发中的一个关键组件,它主要负责处理用户在表单中输入的数据验证。这个框架提供了一种结构化的方式来定义验证规则,并且能够自动生成相应的错误消息,大大简化了开发人员的工作。 ...

    Struts Validator验证框架详细讲解.txt

    要使用Struts Validator,首先需要在项目中包含特定的JAR文件,包括`jakarta-oro.jar`和`commons-validator.jar`。这些库为验证功能提供了基础支持。此外,Struts Validator还依赖于两个XML配置文件:`validator-...

    Struts Validator 开发指南

    这段代码指示 Struts 使用 `ValidatorPlugIn` 类,并指定了两个配置文件的位置:`validator-rules.xml` 和 `validation.xml`。`validator-rules.xml` 文件定义了各种预置的验证器,而 `validation.xml` 文件则根据...

    struts2自定义数据类型转换练习

    本练习主要关注如何在Struts2中实现自定义的数据类型转换,以满足特定业务需求。 首先,我们需要了解Struts2的数据转换机制。当用户提交表单数据时,Struts2会通过ActionContext获取到这些数据,并尝试将其转换为...

    Struts2 使用Validation框架验证数据(三十七)

    四、自定义Validator 除了内置的验证器,Struts2也允许开发者创建自定义验证器。这可以通过实现`Validator`接口或继承`FieldAwareValidator`抽象类来完成。 五、国际化错误消息 Struts2允许使用资源包(properties...

Global site tag (gtag.js) - Google Analytics