自己翻译的一篇stripes验证的官方文档(概述以及错误验证类),有错误的地方大家指出
来源:互联网 发布:店铺如何做淘宝客推广 编辑:程序博客网 时间:2024/05/16 17:16
概述
在Stripes中,验证包括三个方面的概念
1.annotation验证
2.类型转换
3.自定义验证
Annotation正如名字所说,在ActionBean中通过Annotation来制定验证规则的一种方法,这些验证被应用到ActionBean中的单独字段上,可以将一些经常使用的验证进行封装.
类型转换是将一个HttpServletRequest请求表单中的输入字段由字符串转为Java对象(任何对象,包括字符串),类型转换是验证处理的核心,它能够容易的扩展到新版本或自定义类型.
自定义验证是执行验证的,它通过在ActionBean中的一个或多个的JAVA代码函数来执行验证,一个ActionBean能根据不同的情况定义零个、一个或多个方法进行验证.
验证处理过程
字段有很多不同种类的验证,有人可能会问它们是如何被应用的,什么情况下会促发会发生什么错误,以下是一个一般的处理过程.
1.必填字段最先执行.
2.在必填字段验证之后,没有错误
a.进行最大长度、最小长度以及mask验证
b.如果这个字段仍然没有错误,转换到目标类型,然后绑定到ActionBean的属性上.
c.如果转换的过程仍然没有错误,运行仍和最大值/最小值的检验(数字)
3.以上验证没有错误,进行基于验证的计算表达式
4.如果仍然没有错误,运行自定义验证(除非覆盖了运行的错误)
这种方式的设计是在一个传值中来捕获尽可能多的错误信息,因此当用户忘了去输入一个值或者输入了仍和一个错误类型,它们将能够呈现出两个错误在第一次提交表单的时候,但是它不能呈现出任何所需字段的额外错误信息(如违反了最小长度)【but they will not be presented with any additional (e.g. minimum length violation) errors for the field that was required but not supplied】,应该注意当其他的验证成功后才开始运行自定义验证,它能够依赖ActionBean进行一个很好的定义,不管怎么,它都是可配置的(看Configuration Reference).
正如我们所看到的章节[选择性的屏蔽验证]和[改变验证结果],虽然这不是真个书,但是足以解决我们现在的情况.
错误验证类
在开始下一步之前,我们依次进行一个不同验证的快速导览,在下一章节,我们将会看见很多错误验证有关的信息,所以我们有必要了解不用的错误验证类型以及如何使用它们.
ValidationError是错误验证类型方法的接口,所有的错误验证类型都必须支持它,它可以使你有不同的错误验证类提供不同的功能,如果你不满意stripes提供的错误验证类你能够更容易的写出自己的错误验证类.
SimpleError使一个简单的ValidationError的实现,它容许一个硬编码的消息被使用,它能够在消息中加入字段名和值.
LocalizableError继承与SimpleError并能够在一个扩展的资源包中寻找错误信息,这个包名可以配置-如何去做请看Configuration Reference.看两部分,一部分是key的前缀--被使用的ActionBean的路径,另外一部分是扩展可供的key.
ScopedLocalizableError继承LocalizableError,提供了选择搜索错误消息的范围,在实际中这相当于按照名字到资源包中去查找:
- <actionPath>.<fieldName>.<errorName>
- <actionPath>.<fieldName>.errorMessage
- <fieldName>.<errorName>
- <fieldName>.errorMessage
- <actionPath>.<errorName>
- <defaultScope>.<errorName>
在Stripes里所有的错误消息都使用java.text.MessageFormat,它能将你提供的参数融合进消息,前两个参数总是(分别是0和1)分别指向字段名和字段值,以下是一个示例,并且你可以查看错误类文档,它对MessageFormat有更消息的信息.
这是个错误消息示例
myCustomError={0} must be formatted mm/dd/yy. {1} is not a valid date.
自己翻译的,原文:
http://www.stripesframework.org/display/stripes/Validation+Reference#ValidationReference-Overview
- 自己翻译的一篇stripes验证的官方文档(概述以及错误验证类),有错误的地方大家指出
- 本人自己写的一个ASP.NET的验证码工具类,以供大家参考。因为本人经验尚浅,如有哪些地方不足或错误,希望大家指出来,不胜感谢!
- 整理自己所学java基础内容,有错误的请大家指出,相互进步
- 指出程序编译出现错误的地方
- 自己对Z-stack的架构一些理解(仅作学习笔记,有错误希望大家能指出来,初学Z-Stack菜鸟一只)
- 输出ASCII中的最大值的代码,有错误地方还请指出
- 一个自己实现的strstr 字符串查找函数,大家看看有什么错误和改进的地方
- 如何指出老板的错误
- sdl学习心的(有错误请指出)
- 给大家分享一下自己写的验证码api,有汉字、字母数字两类
- java学习笔记,自己有时间就整理的,有错的地方请指出来
- 关于Java的二进制输入输出流的一点总结(有错误请指出)
- 自己封装的验证码工具类以及登录验证
- 手撸的Android相机的官方文档(有自己的理解,翻译的可能有点不对)
- C语言实现的二叉树遍历(递归),如果有错误欢迎指出
- php 制作验证码无法显示的错误有哪些
- 菜鸟一枚,有什么错误,或者不好的地方请大家多多指点
- 验证框架的小错误
- ScrollView中嵌套ListView时显示不全的简便解决方案
- Java学习笔记01-内部类&异常总结
- request_response_cookie-session总结
- WebLogic的初步研究
- WebLogic的安装和配置
- 自己翻译的一篇stripes验证的官方文档(概述以及错误验证类),有错误的地方大家指出
- Android开发之ShapeDrawable
- 11系统常用类一
- moss上部署webpart的一些方法
- Android开发之SurfaceView
- 内存管理理解
- 亚父既去,霸王何归?
- Gentoo安装kvm桥接网络
- MOSS 2007权限详解