自己翻译的一篇stripes验证的官方文档(概述以及错误验证类),有错误的地方大家指出
2011-12-10 23:57
344 查看
概述
在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>
在上面的描述中,你可以参照默认使用的范围和字段名称它是如何被ScopedLocalizableError找到的,在stripes中所有的验证都使用ScopedLocalizableError去建立,所以你能够使用一个在高等级正确的消息来重写你所看到需要改正的提示信息.
在Stripes里所有的错误消息都使用java.text.MessageFormat,它能将你提供的参数融合进消息,前两个参数总是(分别是0和1)分别指向字段名和字段值,以下是一个示例,并且你可以查看错误类文档,它对MessageFormat有更消息的信息.
这是个错误消息示例
自己翻译的,原文:
http://www.stripesframework.org/display/stripes/Validation+Reference#ValidationReference-Overview
在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>
在上面的描述中,你可以参照默认使用的范围和字段名称它是如何被ScopedLocalizableError找到的,在stripes中所有的验证都使用ScopedLocalizableError去建立,所以你能够使用一个在高等级正确的消息来重写你所看到需要改正的提示信息.
在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
相关文章推荐
- django 1.8 官方文档翻译:6-6-5 错误报告
- 自己翻译的官方文档:tomcat配置log4j
- cocos2d-xna-TweeJump学习笔记2(都是自己看别人代码后所感所想,希望有懂的人指出我的错误或者大家交流交流)
- 自己翻译 delegation 官方文档
- 关于solr指导文档,自己做的翻译(有的地方翻译的不是很准确,但是我觉的可以作为一个指导)
- CSL概述(翻译总结自TI官方文档)
- 一只Linux小白,啊哈哈。。。以后就将自己的学习心得与大家分享啦!希望大家可以指出我的错误与不足之处
- Spark-Stream概述1(官方文档翻译版)
- Kotlin官方文档翻译—概述
- 本人自己写的一个ASP.NET的验证码工具类,以供大家参考。因为本人经验尚浅,如有哪些地方不足或错误,希望大家指出来,不胜感谢!
- (原)OSX 也变成svn服务器---1(欢迎大家指出错误。交流提升自己。)
- 整理自己所学java基础内容,有错误的请大家指出,相互进步
- AVFoundation Programming Guide(官方文档翻译1)About AVFoundation - AVFoundation概述
- 我最近发现的微软官方网站以及SUN中国社区的五个翻译错误
- django 1.8 官方文档翻译:13-12 验证器
- 0.jquery 验证,以及显示出现错误的地方 1.当用jquery.validate与ajax时候特别小心在每句后面的逗号问题,如果不需要的地方加上逗号会造成页面无法进入js验证
- (原)OSX 也变成svn服务器---2(欢迎大家指出错误。交流提升自己。)
- 资金计划报表sql 希望大家给点意见,指出我的存储过程里面的错误的地方
- Python3.2 官方文档翻译--错误与异常
- 一个自己实现的strstr 字符串查找函数,大家看看有什么错误和改进的地方