1 Struts2极速表单验证框架使用说明书
struts ‐plus
Struts  enhancement, includes  quick  form  validation, permission  mgmt. Struts 框架增强, 包括极速表单验证, 权限管理等.
子模块之Struts  2 极速表单验证框架
作者: 刘长炯(beansoft@126)
日期: 2010‐01‐20
版本: 0.1
修订历史
2010‐01‐20 初始版
1 Struts2极速表单验证框架使用说明书..................................................................................1 2 Struts 2 极速表单验证框架简介...........................................................................................2 3 项目许可...................................................................................................................................3 4 下载本项目...............................................................................................................................3 5 演示应用...................................................................................................................................4 6 整合步骤step  by  8 7 验证规则表达式详解.............................................................................................................12 8 和RapidValidation 配合实现前后台一致验证.......................................................................13 9 如何扩展验证规则.................................................................................................................14 10 下一版本开发计划 (17)
2 Struts 2 极速表单验证框架简介
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;
javascript说明}
•最快速的后台表单验证框架
•简洁,快速的验证语法
•无需编写验证提示信息
•错误消息在指定地方显示
•支持组合验证
•易于扩展
•基于标准的Java Annotation添加验证,易于和现有项目的无缝集成
•特殊应用场景支持,如:密码确认,结束日期必须大于开始日期
•支持前后台一致的验证规则
本框架主要是为了和前台基于JavaScript的开源验证框架RapidValidation(le/p/rapid‐validation/ )使用统一的验证规则, 最大限度的减少重复的后台验证代码, 使用方式简便, 扩展方便.
本框架依赖于:
z Struts 2
z Java 5或者更高版本
3项目许可
The MIT License
Copyright (c) 2010 刘长炯(beansoft@126)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
4下载本项目
您可访问le/p/struts‐plus/downloads/list 来获取最新源代码包
文件名说明大小
struts2-quickvalidation-plugin-1.0-src.jar Struts 2 QuickFormValidation 26.8
1.0 sources 源码Featured KB
struts2-quickvalidation-plugin-1.0.jar Struts 2 QuickFormValidation
1.0 jar Featured 26.8 KB
struts2-quickvalidation-demo.war 演示war包,部署至Tomcat6运
行Featured 3.4 MB
Javascript_RapidValidation.pdf JavaScript Rapid Validation框架
的详细使用及规则说明文档
(转载)
176KB
5演示应用
可下载示例应用来体验Struts极速验证框架, 下载地址为:
struts‐lecode/files/struts2‐quickvalidation‐demo.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;
}
}
下面是三个演示的效果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。