Logo  http://code.google.com/p/struts-plus/

 

 

完整说明文档请下载: http://struts-plus.googlecode.com/files/Struts2QuickValidation.pdf 

更新日志:

2010-03-04

更新至1.1
增加了非ValidationAware的Action提供字段错误信息存储的功能, 详见 QuickValidationInterceptor.java 61 行, 这样就可在普通的 Action 中配合 Struts 2
的标签进行错误显示了;
修正BUG: 无法在给定位置显示除第一个字段外的其它字段的错误信息, 如 ${errors.age[0]}

请将下图与早期的图进行对比.

image

效果演示:

clip_image002</p>

Struts Plus, Struts + 项目, 计划包含极速表单验证框架, 权限管理等子模块. 目前主要关注于 Struts 2 方面的生产力提高项目, 主要基于注解方式进行增强, 并提供抽象层, 使项目仅仅依赖于 Struts 本身, 而不需要强制您使用某种业务层和数据层框架. 项目的许可采用MIT协议, 您可自由的使用本项目, 但需遵循MIT协议保留本人版权签名及MIT协议本身.

本文主要讲述子模块Struts 2 极速表单验证框架(Struts 2 QuickFormValidation).

本验证机制基于表达式和注解(Annotation), 验证规则的扩展通过实现验证接口进行.

诞生历史:


2009年12月18日晚提出框架原理, 并于2009年12月19日晨提出实现思路, 最终框架核心初步完成于2009年12月20日(周日), 2010-01-20日整理发布.

在项目的开发中, 表单验证需要用去开发者大量的时间, 尤其是为了保证前后台的验证规则一致时, 更是需要大量的人力物力. 虽然Struts 2本身的验证框架可以保证前后台一致, 但在使用和整合方式上, 需要编写大量的Validation XML文件, 费力费时容易出错, 尤其是实际开发中需要反复调整各种验证规则及其组合, 这时就更加困难; 扩展Struts 2的验证框架更是需要比较繁琐的步骤. 针对这些挑战, 笔者试图提供一种简便易用的方式来进行表单验证, 即基于Java注解和验证规则表达式.

如下面的代码即可实现如下的验证要求: 1) 用户名不能为空, 最小长度5, 最大长度10, 只能输入英文字母; 2) 年龄字段只能输入数字, 最小值为18, 最大值为100; 验证失败时, 转向input页面并显示出错信息: ${validationErrors}.

@FormValidator(input="form_tag", value="user.name,用户名,required min-length-5 max-length-10 validate-alpha;" +

"age,年龄,validate-digits min-value-18 max-value-100;")

public String form_tag() throws Exception {

return SUCCESS;

}

  • 最快速的后台表单验证框架
  • 简洁,快速的验证语法
  • 无需编写验证提示信息
  • 错误消息在指定地方显示
  • 支持组合验证
  • 易于扩展
  • 基于标准的Java Annotation添加验证,易于和现有项目的无缝集成
  • 特殊应用场景支持,如:密码确认,结束日期必须大于开始日期
  • 支持前后台一致的验证规则

本框架主要是为了和前台基于JavaScript的开源验证框架RapidValidation(http://code.google.com/p/rapid-validation/ )使用统一的验证规则, 最大限度的减少重复的后台验证代码, 使用方式简便, 扩展方便.

本框架依赖于:

l Struts 2

l Java 5或者更高版本

 

….

1 下载本项目

您可访问http://code.google.com/p/struts-plus/downloads/list 来获取最新源代码包

文件名

说明

大小

struts2-quickvalidation-plugin-1.1-src.jar

Struts 2 QuickFormValidation 1.1 sources 源码

26.8 KB

struts2-quickvalidation-plugin-1.1.jar

Struts 2 QuickFormValidation 1.0 jar

26.8 KB

struts2-quickvalidation-demo1.1.war

演示war包,部署至Tomcat6运行

3.4 MB

Javascript_RapidValidation.pdf

JavaScript Rapid Validation框架的详细使用及规则说明文档(转载)

176KB

 

1 演示应用

可下载示例应用来体验Struts极速验证框架, 下载地址为:

struts2-quickvalidation-demo1.1.war . 放入Tomcat后即可查看运行效果. 您可以本demo应用为基础快速的进行开发.

本演示包含三个内容:

纯后台表单验证

前后台一致表单验证(前台验证基于RaplidValidation)

前后台一致表单验证(Struts 2 Form 标签)

本war包中的唯一的.java文件源码如下:

package actions;

import com.opensymphony.xwork2.ActionSupport;

import common.validation.FormValidator;

public class HelloWorldAction extends ActionSupport {

// 或者implements Action {

@FormValidator(input="form", value="user.name,用户名,required min-length-5 max-length-10 validate-alpha;" +

"age,年龄,validate-digits min-value-18 max-value-100;" +

"password,密码,required;" +

"password2,重复密码,required equals-password-原始密码;" +

"email,,validate-email;" +

"gender,性别,validate-one-required;" +

"ip,,validate-ip;" +

"date,生日,validate-date;" +

"num1,数字1,validate-number;" +

"num2,数字2,validate-number less-than-num1-数字1;" +

"float,数字范围,float-range-1-10;" +

"address,地址,validate-chinese;" +

"zip,邮编,validate-zip;" +

"id_num,身份证,validate-id")

public String form() throws Exception {

return SUCCESS;

}

@FormValidator(input="form_js", value="user.name,用户名,required min-length-5 max-length-10 validate-alpha;" +

"age,年龄,validate-digits min-value-18 max-value-100;" +

"password,密码,required;" +

"password2,重复密码,required equals-password-原始密码;" +

"email,,validate-email;" +

"gender,性别,validate-one-required;" +

"ip,,validate-ip;" +

"date,生日,validate-date;" +

"num1,数字1,validate-number;" +

"num2,数字2,validate-number less-than-num1-数字1;" +

"float,数字范围,float-range-1-10;" +

"address,地址,validate-chinese;" +

"zip,邮编,validate-zip;" +

"id_num,身份证,validate-id")

public String form_js() throws Exception {

return SUCCESS;

}

@FormValidator(input="form_tag", value="user.name,用户名,required min-length-5 max-length-10 validate-alpha;" +

"age,年龄,validate-digits min-value-18 max-value-100;")

public String form_tag() throws Exception {

return SUCCESS;

}

}

下面是三个演示的效果:

clip_image001

 

clip_image003

转载请注明:WebLogic Android 博客 » Struts2极速表单验证开源框架发布(MIT许可),更新至1.1版本