`
hehebendan
  • 浏览: 82034 次
  • 性别: Icon_minigender_1
  • 来自: 伊拉克
社区版块
存档分类
最新评论

Struts2批量数据的提交

阅读更多

最近遇见一个问题就是struts2当中批量的数据如何提交到action中去,几经转折最终实现了这样的功能。

下面是action的代码:

public class OrderManageAction extends ActionSupport {

	private Order order;    //订单的PO

	private List<Product> list = new ArrayList<Product>(); //订单物品list对象。数据库order和product是主从表关系。
                ...
                ...
                ...
                ...
               public String execute() throws Exception{
                
               System.out.println(order.getDate()+" "+order.getOrderName());
               System.out.println(this.list.size());
               // 简单的打印一下list的大小。查看是否把数据封装进去了
               }          
}

 

   下面的工作就是定义一个转换器,如果是使用的struts2的标签库,那么日期格式的字符串Struts2会自动帮我们转换,但是对于普通的HTML标记,date类型的也是需要写转换器的。在此就不书写了。下面定义一个对list的转换器。

   

package com.wh.conversion;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.wh.bean.Product;

public class ProductListConverter extends StrutsTypeConverter {

	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		int trNum = values.length / 7;
		List<DetailPO> list = new ArrayList<DetailPO>();
		int pointer = 0;
		for (int i = 1; i <= trNum; i++) {
			Product product = new Product();
                                                product.setName(values[pointer]);
                                                product.setAdress(values[++pointer]);
                                                list.add(product);
			pointer = i * 7;
		}
		return list;
	}
               //将页面的数据取出来。然后封装成Product对象,然后放置到list中去
	@Override
	public String convertToString(Map context, Object o) {
		// TODO Auto-generated method stub
		return null;
	}

}

 

   最后是页面JSP书写了。页面很简单,就是你的批量的数据就是Product这个PO对应在页面的input框的name值都必须为list。这样就完成了。

   在页面配置name的时候还可以采用一种方式,name="list[0].name",name="list[0].adress" 这样就不需要转换器就可以直接提交数据。但是个人觉得使用第一种方法比较好一点。

分享到:
评论

相关推荐

    struts2批量提交数据

    在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...

    struts批量修改数据

    2. 用户点击“批量修改”按钮,表单数据(`UserForm`)被提交到服务器。 3. Struts框架接收到请求后,根据配置的Action映射,调用相应的Action类的方法(例如`execute()`)。 4. 在Action类中,我们处理表单数据,...

    Struts2关于批量提交数据-解决方案

    在Web应用开发过程中,特别是在使用Struts2框架时,经常需要处理大量的数据提交操作。这些数据可能来自于用户输入或者是系统内部的数据迁移等场景。对于这种需求,本文档将详细介绍两种批量提交数据的方法,并对比...

    Struts2批量上传

    当客户端提交包含文件字段的表单时,Struts2会将这些文件字段封装为`File`对象数组,并提供相应的属性来访问文件的元数据(如文件名、类型等)。这种设计允许开发者在Action类中直接处理多个上传文件,而无需额外...

    Struts2批量插入

    Struts2批量插入是Web开发中常见的操作,主要用于提高数据处理效率,特别是在处理大量数据时。Struts2作为一款流行的Java MVC框架,提供了强大的功能来支持这种操作。本篇文章将深入探讨Struts2如何实现批量插入,并...

    Struts2文件批量上传

    当用户提交表单时,Struts2会自动调用`Commons FileUpload`处理文件,并将文件内容存储到服务器的临时目录。为了持久化这些文件,开发者需要在Action中实现文件的移动或复制,例如将文件移动到指定的服务器目录。 ...

    struts2 的批量删除功能完整例子

    总结来说,实现Struts2的批量删除功能,需要整合视图、控制和数据访问层的组件。通过前端JSP页面收集用户选择,利用Struts2的MVC模型处理请求,最后在数据库层面执行删除操作。这个过程涉及到Java编程、JSP模板、...

    Struts2 批量接收页面 checkbox 或对象数据 源码(有图有真相)

    前台checkbox提交的数据,Struts2在后台自动封装成数组/List。...前台向后台批量提交对象数据,struts2就显得力不从心了,本案例着重介绍,批量向后台提交对象数据,源码,有图有真相哦! 欢迎交流、吐槽、指导批评!

    struts2.0精简入门教程(带源码)-批量提交篇

    通过这个教程,你将掌握如何在Struts2.0中实现批量数据提交,以及如何利用Struts2的特性优化代码结构和提高代码复用性。对于想要提升Java Web开发技能的开发者来说,这是一个非常实用的实践教程。通过学习和实践,你...

    Struts批量类型转换

    2. 类型转换:使用Struts2的转换器或自定义转换器,将收集到的原始数据转换为对应的Java对象。 3. 验证:在插入前,对转换后的数据进行验证,确保其符合业务规则。 4. 批量操作:使用JDBC批处理或ORM框架如Hibernate...

    struts1 poi Excel批量导入支持xls和xlsx-源码java

    在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,它允许用户批量导入Excel数据,无论是旧版的.xls格式还是较新的.xlsx格式。 首先,我们需要了解Apache POI的基本用法。...

    struts2 hibernate spring 整合批量删除源码

    在批量删除操作中,Struts2会接收用户的批量删除请求,通过Action类来处理这些请求,并将结果转发到相应的视图页面。Action类通常会注入Spring管理的业务服务层,以便调用删除方法。 其次,Hibernate是一个对象关系...

    提交多行数据到Struts的ActionForm的List属性中

    当用户提交表单时,Struts框架会自动将表单数据填充到ActionForm实例中。 为了提交多行数据,我们通常会在HTML页面中使用多个相同的输入元素,比如表格,每个行代表一行数据。例如,我们可以创建一个表格,每行包含...

    struts1实现的文件批量上传

    表单需要设置`enctype="multipart/form-data"`属性,这是为了允许表单提交包含二进制数据(如文件)。可以使用JavaScript或jQuery插件来实现无刷新的多文件选择,这里使用了一个名为“仿163网盘无刷新上传”的JS控件...

    Struts批量录入

    在Java编程中,Struts2框架提供了一种批量数据提交的解决方案,这使得开发者能够方便地处理用户在页面上输入的多条记录,并一次性提交到数据库。以下是对这个主题的详细解释: 首先,批量数据提交的关键在于Struts2...

    struts2+hibernate(文件批量上传至数据库+Ajax分页显示)

    这通常涉及到多部分表单提交(multipart/form-data),Struts2提供了Interceptor(拦截器)来处理这类请求。文件会被临时存储在服务器上,然后通过Action处理,将文件信息插入到数据库中,同时文件内容可能以BLOB...

    Struts2应用开发详解05

    在Struts2中,这一过程变得自动化且高效,特别是对于批量数据处理,Struts2提供了批量类型转换的能力,大大简化了开发者的工作。 批量类型转换主要涉及两个核心概念:`Converter`和`ConversionService`。`Converter...

    struts2-057扫描工具

    描述中的“Struts2-057扫描工具”就是为了这个目的而设计的,它支持批量扫描检查,可以快速有效地检测出环境中是否存在Struts2-057漏洞。 **扫描工具的使用** 在提供的压缩包文件中,"Struts2漏洞检查工具2018版....

    struts2Ecxel导入导出

    在Struts2中实现Excel的导入和导出功能,可以帮助用户处理大量的数据,例如批量导入数据库,或者允许用户下载数据为Excel格式进行分析。下面我们将深入探讨Struts2中Excel导入导出的关键知识点。 一、Apache POI库 ...

    jquery下的ajax与struts2操作数据库

    2. **商品记录修改**:修改操作类似,前端展示商品详情,用户更改后通过AJAX提交修改的数据。Action接收到这些数据,更新数据库中的相应记录,然后反馈操作结果。 3. **动态添加商品记录**:用户填写新的商品信息后...

Global site tag (gtag.js) - Google Analytics