Struts 的批量封装有几种方法:
1、 有form 来封装
2、 用动态form
3、 用隐藏域
这里主要介绍用动态form 来进行封装
1步:在struts.xml中写actionform写映射
<form-bean name="dynaTravelForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="saction" type="java.lang.String"></form-property>
<form-property name ="resourceNotices"
type ="com.bsteel.baointl.baotong.contract.form.BtTravelResourceForm"/>
</form-bean>
2步:写相关的form 类
//BtTravelResourceForm 类
public class BtTravelResourceForm {
private static final long serialVersionUID = 1L;
private int id ;
//相关的javaBean内的一些集合
private List traveResources = new AutoInitArrayList(BtTravelResource.class);
private String saction;
}
//AutoInitArrayList 类
public class AutoInitArrayList extends LinkedList{
private static final long serialVersionUID = 1L;
/** 容器内保存的类 */
private Class clazz;
/**私有构造函数,保证外界无法直接实例化*/
private AutoInitArrayList() {
}
public AutoInitArrayList(Class clazz) {
this.clazz = clazz;
}
3步:在Action类获得封装的对象
protected ActionForward execute(ActionContext context) throws Exception {
DynaValidatorForm frm = (DynaValidatorForm) context.getForm();
BtTravelResourceForm btf=(BtTravelResourceForm)frm.get("resourceNotices");
List list = btf.getTraveResources(); //获得所有页面上的对象
4步:在页面上写映封装数据时的映射
<%
int i = 0;
for (int j =0;j<10;j++){
%>
<tr align="center">
<td><%=++i %></td>
<td><INPUT type="text"
//注意name 的命名
name="resourceNotices.traveResources[<%=i-1 %>].client" value="" size="8" /></td>
.......
</tr>
二、 用form 的方法 就继承ActionForm,在form 中定义Model类的集合,然后在页面上定义即可
三、用隐藏域的方法 ,在每个要封装的对象面前,放一个隐藏域,一个隐藏域,封装一个对象,把它的属性用字符串连接,存储到隐藏域的值中,然后再把隐藏域中的值拿出来
用 getparamsNames 拿出隐藏集合,再用字符串分割来获取每个属性
分享到:
相关推荐
批量封装对象是Struts 1.x中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...
在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...
### Struts2批量提交数据解决方案 在Web应用开发过程中,特别是在使用Struts2框架时,经常需要处理大量的数据提交操作。这些数据可能来自于用户输入或者是系统内部的数据迁移等场景。对于这种需求,本文档将详细...
表单提交时,数据可以被Struts2的表单绑定机制自动封装到`dataList`中。 在实际开发中,我们可能会遇到性能优化的问题。例如,当数据量非常大时,一次性处理可能会导致内存压力和数据库连接池耗尽。这时,可以采用...
当客户端提交包含文件字段的表单时,Struts2会将这些文件字段封装为`File`对象数组,并提供相应的属性来访问文件的元数据(如文件名、类型等)。这种设计允许开发者在Action类中直接处理多个上传文件,而无需额外...
在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,它允许用户批量导入Excel数据,无论是旧版的.xls格式还是较新的.xlsx格式。 首先,我们需要了解Apache POI的基本用法。...
知识点:Struts2框架下的注解批量下载实现与临时文件管理 在Struts2框架中,使用注解(Annotation)可以极大地简化控制器类的配置,提高代码的可读性和维护性。本文将深入探讨如何利用Struts2的注解功能实现批量...
在Struts1.2框架中,FormFile是用于处理文件上传的一个关键组件,尤其是在实现批量上传功能时。本文将深入探讨如何使用FormFile在Struts1.2中实现实现批量文件上传,以及相关的技术要点。 一、Struts1.2简介 Struts...
前台checkbox提交的数据,Struts2在后台自动封装成数组/List。 but 前台向后台批量提交对象数据,struts2就显得力不从心了,本案例着重介绍,批量向后台提交对象数据,源码,有图有真相哦! 欢迎交流、吐槽、指导...
在批量上传过程中,Struts2接收前端发送的文件数据,并处理这些文件的存储和业务逻辑。它通常使用Action类来处理请求,配合Interceptor拦截器处理上传过程中的验证、权限检查等任务。Struts2的配置文件(struts.xml...
4. **定义值对象**:创建值对象`Student`和`ExcelWorkSheet`用于封装数据。 - `Student`类包含学生的基本信息,如ID、姓名、性别和生日等。 - `ExcelWorkSheet`类封装Excel工作表的信息,包括工作表名称、列名和...
`FormFile`是Struts的`org.apache.struts.action.ActionForm`类的一个属性,它提供了对上传文件的封装,包括文件名、临时存储路径、文件类型等信息。在用户提交包含文件上传的表单时,`FormFile`对象会被Struts的...
`使用需知.txt`可能包含了整合过程中的注意事项和步骤,例如如何配置Struts2的拦截器来支持Hibernate的事务管理,或者在JSP页面中如何正确绑定数据到表单元素,以及如何处理可能出现的异常等。 `Tabletemplate`可能...
Struts2会自动将这些信息封装到Action中。 3. **使用POI读取Excel**: POI提供了API来操作Excel文件。使用`HSSFWorkbook`类读取.xls文件,或`XSSFWorkbook`类读取.xlsx文件。通过`Sheet`对象获取工作表,再通过`...
Form Bean则用于封装用户输入的数据,从视图传递到Action,再由Action传递给模型进行处理。在这个图书查询系统中,可能会有一个`BookForm`类作为Form Bean,用于存储用户输入的模糊查询条件。 3. **配置文件与请求...
在Java Web应用中,存储过程可以被用作后端的数据处理中心,执行批量处理、事务管理或者复杂的查询。与直接在应用程序中执行SQL相比,使用存储过程可以提高性能,减少网络传输,增强安全性,并且可以更好地封装...
ActionForm对象用于封装用户输入的数据,并在Action和模型之间传递。在本项目中,Action类和ActionForm将用于处理用户的登录、信息添加、删除等操作。 Struts标签是Struts框架提供的一套JSP标签库,可以简化页面的...
6. **最佳实践**:在实际项目中,应遵循模块化和分层设计原则,将业务逻辑、数据访问和视图展示分别封装。同时,利用Spring AOP进行日志记录、权限控制等跨切面关注点的处理。对于性能优化,可以使用缓存策略、批量...
5. **安全性考虑**:在实现批量删除时,需要防止恶意用户通过修改请求参数导致大量数据被误删。可以通过校验用户权限、确认待删除数据的合法性等方式来增加安全性。 综上所述,SSH整合在分页和批量删除方面提供了...