我的Action里有一属性int[] id,进行了相应的set和get方法.
这个Action有一个对应的.xml的校验文件,内容如下:
id不能为空!
<field-validator type="int">
<param name="min">1</param>
<message>id不能小于1</message>
</field-validator>
</field>
如果在浏览器里直接输入XXX.action?id=1&id=2,就会报错。
XXX.action指的是上面的Action。
xml校验功能有限的,只能对如下几种简单的类型校验。
[list]
[*]required 用于检查值是否为null
[*]requiredstring 用于检查string是否为null或空, 参数trim,可在验证前对字符串执行trim操作
[*]stringlength 检查string的长度是否在某个范围, 参数trim,minLength,maxLength
[*]int/double 检查某值是否为int/double且在某个范围,参数min,max;minInclusive,maxInclusive,minExclusive,maxExclusive
[*]date 检查date的范围, 参数min,max
[*]email 检查输入是否为email格式
[*]url 检查输入是否为url格式
[*]conversion 检查是否将出现数据转换错误
[*]expression/fieldexpression 检查某个布尔表达式的值是否为true,后者绑定到某个字段上
参数expression
[*]visitor 使用预定义的validators进行验证,参数context
[*]regex 检查是否能匹配到正则表达式, 参数regex
[/list]
[color=darkblue]
[size=medium][b]当校验逻辑不是十分复杂时,可以用xml进行校验;逻辑十分复杂是,可以通过validate()进行校验[/b][/size][/color]
你报什么异常嘛,粘出来
[quote]AnnotationValidationInterceptor,[/quote]注释校验出错了。
看看下面的注释校验:
http://blog.sina.com.cn/s/blog_608cadbc0100dr58.html
多配置一个filter
struts-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUp
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这个还是类型转换错误
[quote]类型转换[/quote]
这是数组,不是对象或者简单类型,没法类型转换。