论坛里有一篇「struts使用list提交多行表单(提供完整示例)」,我能理解并且能实现list提交多行表单的问题。
现在我还有个问题,各位大侠们解答一下,我提交的list数据可以通过form里的validate来验证,可是为了层次清晰更想通过validator验证器来验证,怎么编写自己的验证器方法可以实现。
以下是验证器自定义方法,怎么填充这个方法可以实现验证list呢?
我的list里面有很多字段,我是想用验证器来验证很多字段。
validator-rules.xml配置如下:
validation.xml配置如下:
现在我要单独写一个上述‘validator-rules.xml’中提到的validateMyList方法来做验证,传统的都是验证某一个字段,现在我要验证一个list,list里包含很多字段。validateMyList应该怎么实现呢?
在org.apache.struts.validator.FieldChecks类里我定义了如下的方法:
我要验证的list定义如下:
而CooperationClient类的定义如下:
这个方法怎么写可以实现list的验证,难点在于把list里所有的字段都验证,然后把[color=red]error messages[/color]统一报出来。
谢谢了。
欢迎讨论,能解决最好。本人初学不久理解不透彻。
msn:lingyunlujixin@msn.com
现在我还有个问题,各位大侠们解答一下,我提交的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