论坛里有一篇「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里所有的字段都验证,然后把
error messages统一报出来。
谢谢了。
欢迎讨论,能解决最好。本人初学不久理解不透彻。
msn:lingyunlujixin@msn.com
分享到:
相关推荐
这个Bean应该包含一个List属性,例如`List<Product>`,其中Product是另一个Bean,包含了商品的各个属性。在表单提交后,Struts的默认数据绑定机制会尝试将请求参数自动绑定到ActionForm的属性上。 接着,Action类会...
在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1的默认Binding机制会自动将这些值绑定到List中。 4. **配置文件**: 配置文件(struts-config.xml)需要添加相应的...
例如,创建一个包含学生列表的Action属性,并在JSP页面中使用迭代器为每个学生创建输入字段。然后,通过配置`Action-conversion.properties`文件,指定一个转换器将表单数据转换为相应的对象,如Student类的实例,再...
在`struts.xml`配置文件中,我们需要定义一个Action,指定其结果类型为`json`。这样,当Action执行完成后,Struts2会自动将Action中的属性序列化为JSON格式并返回给客户端。配置如下: ```xml <!-- 配置Struts2...
拦截器是Struts2框架中的一个重要组成部分,它允许在执行Action之前或之后插入一系列预处理或后处理操作。拦截器的设计基于责任链模式,可以用于执行如类型转换、数据校验、日志记录、会话管理等多种任务。 **默认...
以下是一个简单的入门实例,帮助初学者理解如何配置和使用Struts2.0。 首先,我们需要创建一个新的Web项目。在MyEclipse中,你可以新建一个Web项目,例如命名为"Struts2入门实例"。接下来,你需要导入Struts2运行所...
在Java Web开发中,Struts框架是一个非常流行的MVC(模型-视图-控制器)架构,用于构建可维护性高、结构清晰的Web应用程序。在处理复杂数据结构时,Struts框架提供了灵活的数据绑定能力,其中包括在List中嵌套Map的...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建企业级Java Web应用程序。在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化...
在Java Web开发中,Struts框架是一个非常流行的MVC(模型-视图-控制器)架构,它简化了处理用户请求和展示响应的方式。当我们需要在客户端提交多行数据时,通常会利用表单来收集信息,然后将这些数据传递到服务器端...
Struts框架是Java Web开发中的一个经典模型-视图-控制器(MVC)框架,它极大地简化了构建基于JSP的Web应用。在Struts中,Form Bean是用于处理用户输入的重要组件,它充当了模型层与视图层之间的桥梁。本篇文章将深入...
Struts是Apache软件基金会(ASF)的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。Struts2作为其后续版本,为开发者提供了更强大的功能,包括动作调度、结果处理、表单...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。然而,随着时间的推移,Struts2的早期版本暴露了一些安全漏洞,这使得系统容易受到攻击。本教程将详细解释如何将Struts2的...
Struts2是一个强大的Java web框架,它提供了丰富的功能来构建MVC(模型-视图-控制器)架构的应用程序。在Struts2中,Tag库是其核心组件之一,极大地简化了视图层的开发,使得开发者可以更方便地创建动态网页。本篇将...
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它简化了开发过程,提供了丰富的插件和动作支持,使得开发者能够更高效地组织和管理代码。本教程将指导新手配置第一个基于...
在项目的`src`目录下新建一个名为`struts.xml`的文件,并添加基本的配置信息。 ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户请求、数据绑定、验证、国际化等。在处理文件上传时,Struts2提供了便捷的API和配置方式,使得开发人员能够轻松实现多文件上传的功能。...
当请求到达时,Struts会根据配置创建一个新的Action实例,调用validate()进行验证,然后调用execute()方法执行业务逻辑。验证失败会阻止execute()的执行,并将错误信息返回给视图。 5. **Struts配置文件**: 在...
在"struts简易增删改查"这个主题中,我们将探讨如何使用Struts框架来实现一个基本的数据操作功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Search)数据。这些功能是任何数据库驱动的应用程序的...
除了预定义的标签外,Struts2还允许开发者自定义标签,这需要创建一个继承自`org.apache.struts2.views.jsp.TagSupport`的Java类,并在JSP页面中使用`<s:tag>`进行调用。 五、标签库的扩展性 Struts2的标签库不仅...
在Java Web开发中,Struts1.x框架是一个广泛使用的MVC(Model-View-Controller)框架,它提供了处理用户请求、业务逻辑和视图展示的能力。在Struts1.x中,实现文件上传功能是一个常见的需求,特别是在处理用户提交的...