Struts2中的collection验证
Struts2提供了Collection的转换器,可以直接把页面传递过来的参数转换成List Set类型,使用这个转换器能为我们节省不少手指运动量,但Collection的验证就成了一个问题.google之后,找到了这个资料webwork数组形式提交表单及validation研究.但文中的collection是xwork1的验证器,在xwork2中并不存在,于是想到把它从xwork1中转移过来.并修改了少许,使之可以支持多个验证器.
有2个类,CollectionFieldValidator和DefaultActionValidatorManager,因为都是xwork1的类,所以我们还要稍微改动一下.
CollectionFieldValidator.java
<validators><!-- Action 中 Field 名--><field name="sentForm"><field-validator type="collection"> <!-- 需要验证的属性,其中details是collection--><param name="property">sentForm.details.requestQty</param> <!-- 以逗号分隔 --><param name="validatorRefs">required,int</param> <!-- 验证器引用名_参数名--><param name="validatorParams['required_messageKey']">receivedocument.requestQty.validate.required</param><param name="validatorParams['int_messageKey']">receivedocument.requestQty.validate.int</param><message>...</message></field-validator> </field><field name="sentForm"><field-validator type="collection"> <param name="property">sentForm.details.item</param> <param name="validatorRefs">requiredstring</param> <param name="validatorParams['requiredstring_messageKey']">receivedocument.item.validate.required</param><message>...</message></field-validator> </field></validators>