不知道大家是否遇过这样情况,在一个页面里同时提交几个对象,例如,在发布产品的页面,同时发布几个产品.
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中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...
当客户端提交包含文件字段的表单时,Struts2会将这些文件字段封装为`File`对象数组,并提供相应的属性来访问文件的元数据(如文件名、类型等)。这种设计允许开发者在Action类中直接处理多个上传文件,而无需额外...
在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...
表单提交时,数据可以被Struts2的表单绑定机制自动封装到`dataList`中。 在实际开发中,我们可能会遇到性能优化的问题。例如,当数据量非常大时,一次性处理可能会导致内存压力和数据库连接池耗尽。这时,可以采用...
前台checkbox提交的数据,Struts2在后台自动封装成数组/List。...前台向后台批量提交对象数据,struts2就显得力不从心了,本案例着重介绍,批量向后台提交对象数据,源码,有图有真相哦! 欢迎交流、吐槽、指导批评!
知识点:Struts2框架下的注解批量下载实现与临时文件管理 在Struts2框架中,使用注解(Annotation)可以极大地简化控制器类的配置,提高代码的可读性和维护性。本文将深入探讨如何利用Struts2的注解功能实现批量...
2. **文件上传封装**:文件数据被封装成FormData对象,通过Ajax请求发送到服务器。每个文件可能作为单独的part发送,或者通过分块上传策略合并为一个大请求。 3. **Struts2 Action处理**:在后端,Struts2 Action...
### Struts2批量提交数据解决方案 在Web应用开发过程中,特别是在使用Struts2框架时,经常需要处理大量的数据提交操作。这些数据可能来自于用户输入或者是系统内部的数据迁移等场景。对于这种需求,本文档将详细...
在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,它允许用户批量导入Excel数据,无论是旧版的.xls格式还是较新的.xlsx格式。 首先,我们需要了解Apache POI的基本用法。...
2. 添加文件域:在表单中,使用`<html:file>`标签为每个要上传的文件添加一个输入元素,可以有多个这样的元素以实现批量上传。 3. 创建ActionForm:创建一个继承自`org.apache.struts.action.ActionForm`的类,定义...
Struts2会自动将这些信息封装到Action中。 3. **使用POI读取Excel**: POI提供了API来操作Excel文件。使用`HSSFWorkbook`类读取.xls文件,或`XSSFWorkbook`类读取.xlsx文件。通过`Sheet`对象获取工作表,再通过`...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责Web应用程序的不同层面:Struts2处理表现层逻辑,Spring提供业务层管理和依赖注入,而Hibernate则专注于持久化层,管理数据库交互。将这三者...
Struts2提供了强大的动作调度和页面渲染能力,而Hibernate则是面向对象的数据库映射工具,简化了数据库操作。整合这两个框架可以实现高效、灵活的企业级应用开发,尤其是进行CRUD(创建、读取、更新和删除)操作。 ...
`FormFile`是Struts的`org.apache.struts.action.ActionForm`类的一个属性,它提供了对上传文件的封装,包括文件名、临时存储路径、文件类型等信息。在用户提交包含文件上传的表单时,`FormFile`对象会被Struts的...
5. **Struts2 OGNL**:表达式语言的使用,访问对象属性。 6. **Struts2的注解**:@Action、@Result、@Namespace等,简化配置。 7. **Struts2国际化**:资源文件的创建和使用,实现多语言支持。 8. **Struts2与...
4. **定义值对象**:创建值对象`Student`和`ExcelWorkSheet`用于封装数据。 - `Student`类包含学生的基本信息,如ID、姓名、性别和生日等。 - `ExcelWorkSheet`类封装Excel工作表的信息,包括工作表名称、列名和...
1. Struts2框架的基本使用,包括Action类、ActionForm对象和Struts标签。 2. 验证框架的集成与应用,确保用户输入的有效性。 3. Ajax技术的运用,实现无刷新的数据操作。 4. 权限管理机制,保护系统安全。 5. 整合...
Spring提供了依赖注入和面向切面编程,Struts处理MVC模式,而Hibernate则是ORM(对象关系映射)框架,负责数据库操作。下面将详细介绍SSH整合在分页和批量删除功能上的实现。 一、SSH整合中的分页 在大型系统中,...
在Struts框架中,ActionForm对象用于封装用户提交的表单数据。对于多文件上传而言,我们需要创建一个专门的ActionForm类,用于管理用户上传的文件列表。 示例代码: ```java public class MoreFileUploadForm ...