`
wuhaidong
  • 浏览: 357694 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

struts2批量封装对象

阅读更多

不知道大家是否遇过这样情况,在一个页面里同时提交几个对象,例如,在发布产品的页面,同时发布几个产品.

 

package org.cric.model;

import java.util.Date;

/**
 * 产品持久化类
 * @author Administrator
 *
 */
public class Product {

	private String name;
	
	private double price;
	
	private Date createDate;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
}

 

 

 

package org.cric.action;

import java.util.List;

import org.cric.model.Product;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class ProductAction extends ActionSupport {
	
	private List<Product> products;

	public List<Product> getProducts() {
		return products;
	}

	public void setProducts(List<Product> products) {
		this.products = products;
	}
	
	//////////////////////////////////////
	//////////////////////////////////////
	public String execute() throws Exception
	{
		for(Product p:products){
			System.out.println(p.getName()+"--"+p.getPrice()+"--"+p.getCreateDate());
		}
		return Action.SUCCESS;
	}
}
 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd" >
<struts>
	<package name="product" extends="json-default">
		<action name="addProduct" class="org.cric.action.ProductAction">
			<result>/showproducts.jsp</result>
		</action>
	</package>
</struts>
 

 

 

<s:form action="addProduct" theme="simple">
		<table>
			<tr>
				<td>商品名称</td>
				<td>商品价格</td>
				<td>生成日期</td>
			</tr>
			<s:iterator value="new int[3]" status="stat">
				<tr>
					<td><s:textfield name="%{'products['+#stat.index+'].name'}"/></td>
					<td><s:textfield name="%{'products['+#stat.index+'].price'}"/></td>
					<td><s:textfield name="%{'products['+#stat.index+'].createDate'}"/></td>
				</tr>
			</s:iterator>
			<tr>
				<td colspan="3"><s:submit value="提交"/></td>
			</tr>
		</table>
	</s:form>
 

 

<table border="1">
		<tr>
			<td>商品名称</td>
			<td>商品价格</td>
			<td>生成日期</td>
		</tr>
		<s:iterator value="products" status="stat">
			<tr>
				<td><s:property value="name"/></td>
				<td><s:property value="price"/></td>
				<td><s:property value="createDate"/></td>
			</tr>
		</s:iterator>
	</table>

 

 

在addProducts.jsp的<s:textfield>的name为%{'products['+stat.index+']'.name},%{exp}格式表示使用OGNL表达式,上述表达式的相对于<%="products["+stat.index+"].name"%>

 

 

分享到:
评论

相关推荐

    Struts 1.x中批量封装对象

    批量封装对象是Struts 1.x中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...

    Struts2批量上传

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

    struts2批量提交数据

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

    Struts2批量插入

    表单提交时,数据可以被Struts2的表单绑定机制自动封装到`dataList`中。 在实际开发中,我们可能会遇到性能优化的问题。例如,当数据量非常大时,一次性处理可能会导致内存压力和数据库连接池耗尽。这时,可以采用...

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

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

    struts2 annotation 批量下载

    知识点:Struts2框架下的注解批量下载实现与临时文件管理 在Struts2框架中,使用注解(Annotation)可以极大地简化控制器类的配置,提高代码的可读性和维护性。本文将深入探讨如何利用Struts2的注解功能实现批量...

    extjs struts2 多图片批量上传控件

    2. **文件上传封装**:文件数据被封装成FormData对象,通过Ajax请求发送到服务器。每个文件可能作为单独的part发送,或者通过分块上传策略合并为一个大请求。 3. **Struts2 Action处理**:在后端,Struts2 Action...

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

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

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

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

    Struts1.2 formfile实现批量上传

    2. 添加文件域:在表单中,使用`&lt;html:file&gt;`标签为每个要上传的文件添加一个输入元素,可以有多个这样的元素以实现批量上传。 3. 创建ActionForm:创建一个继承自`org.apache.struts.action.ActionForm`的类,定义...

    Struts2 poi动态导入导出Excel源码示例

    Struts2会自动将这些信息封装到Action中。 3. **使用POI读取Excel**: POI提供了API来操作Excel文件。使用`HSSFWorkbook`类读取.xls文件,或`XSSFWorkbook`类读取.xlsx文件。通过`Sheet`对象获取工作表,再通过`...

    struts2+spring+hibernate整合实例

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责Web应用程序的不同层面:Struts2处理表现层逻辑,Spring提供业务层管理和依赖注入,而Hibernate则专注于持久化层,管理数据库交互。将这三者...

    struts2与hibernate的整合实现数据的crud

    Struts2提供了强大的动作调度和页面渲染能力,而Hibernate则是面向对象的数据库映射工具,简化了数据库操作。整合这两个框架可以实现高效、灵活的企业级应用开发,尤其是进行CRUD(创建、读取、更新和删除)操作。 ...

    struts框架中formFile批量上传图片

    `FormFile`是Struts的`org.apache.struts.action.ActionForm`类的一个属性,它提供了对上传文件的封装,包括文件名、临时存储路径、文件类型等信息。在用户提交包含文件上传的表单时,`FormFile`对象会被Struts的...

    2014 java servet jdbc struts struts2面试题

    5. **Struts2 OGNL**:表达式语言的使用,访问对象属性。 6. **Struts2的注解**:@Action、@Result、@Namespace等,简化配置。 7. **Struts2国际化**:资源文件的创建和使用,实现多语言支持。 8. **Struts2与...

    struts2数据导入导出

    4. **定义值对象**:创建值对象`Student`和`ExcelWorkSheet`用于封装数据。 - `Student`类包含学生的基本信息,如ID、姓名、性别和生日等。 - `ExcelWorkSheet`类封装Excel工作表的信息,包括工作表名称、列名和...

    struts实例应用项目

    1. Struts2框架的基本使用,包括Action类、ActionForm对象和Struts标签。 2. 验证框架的集成与应用,确保用户输入的有效性。 3. Ajax技术的运用,实现无刷新的数据操作。 4. 权限管理机制,保护系统安全。 5. 整合...

    ssh整合的分页、批量删除

    Spring提供了依赖注入和面向切面编程,Struts处理MVC模式,而Hibernate则是ORM(对象关系映射)框架,负责数据库操作。下面将详细介绍SSH整合在分页和批量删除功能上的实现。 一、SSH整合中的分页 在大型系统中,...

    struts实现多文件上传2.txt

    在Struts框架中,ActionForm对象用于封装用户提交的表单数据。对于多文件上传而言,我们需要创建一个专门的ActionForm类,用于管理用户上传的文件列表。 示例代码: ```java public class MoreFileUploadForm ...

Global site tag (gtag.js) - Google Analytics