用struts验证器验证一个List

论坛里有一篇「struts使用list提交多行表单(提供完整示例)」,我能理解并且能实现list提交多行表单的问题。
现在我还有个问题,各位大侠们解答一下,我提交的list数据可以通过form里的validate来验证,可是为了层次清晰更想通过validator验证器来验证,怎么编写自己的验证器方法可以实现。

以下是验证器自定义方法,怎么填充这个方法可以实现验证list呢?
我的list里面有很多字段,我是想用验证器来验证很多字段。


validator-rules.xml配置如下:

<form-validation>
<global>
<validator
name="validateList"
classname="org.apache.struts.validator.FieldChecks"
method="validateMyList"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.××××××" />
</global>
</form-validation>


validation.xml配置如下:

<form-validation>
<global />
<formset>
<form
name="MyForm">

<!-- 我自定义的form中的list -->
<field
property="myList"
depends="validateList">
<msg
name="validateList"
key="error.×××××××" />
<arg
key="×××××"
resource="true"
position="0"/>
</field>
</form>
</formset>
</form-validation>


现在我要单独写一个上述‘validator-rules.xml’中提到的validateMyList方法来做验证,传统的都是验证某一个字段,现在我要验证一个list,list里包含很多字段。validateMyList应该怎么实现呢?

在org.apache.struts.validator.FieldChecks类里我定义了如下的方法:

public static boolean validateMyList(
Object bean,
ValidatorAction action,
Field field,
ActionMessages message,
Validator validator,
HttpServletRequest req) {

List target = null;
String pattern = null;

target = ValidatorUtils.getValueAsList(bean, field.getProperty());

怎么实现……………

return Boolean.FALSE;
}


我要验证的list定义如下:

/**
* mylist
*/
private List<CooperationClient> myList;

而CooperationClient类的定义如下:

package ja.co.eisho.master.template.search;

/**
* <pre>
*
* </pre>
*
* @author 東方標準 LUJX
*/

public class CooperationClient {

/**
*
*/
private String clientCategoryID;

/**
*
*/
private String clientCategoryName;

/**
*
*/
private String templateID;

/**
* <pre>
*
* </pre>
*
* @param String templateID
*/
public void setTemplateID(String templateID) {
this.templateID = templateID;
}

/**
* <pre>
*
* </pre>
*
* @return String templateID
*/
public String getTemplateID() {
return templateID;
}

/**
* <pre>
*
* </pre>
*
* @param String clientCategoryID
*/
public void setClientCategoryID(String clientCategoryID) {
this.clientCategoryID = clientCategoryID;
}

/**
* <pre>
*
* </pre>
*
* @return String clientCategoryID
*/
public String getClientCategoryID() {
return clientCategoryID;
}

}

这个方法怎么写可以实现list的验证,难点在于把list里所有的字段都验证,然后把[color=red]error messages[/color]统一报出来。

谢谢了。
欢迎讨论,能解决最好。本人初学不久理解不透彻。
msn:lingyunlujixin@msn.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值