struts2如何进行对数组的校验?

我的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]

这是数组,不是对象或者简单类型,没法类型转换。