`

struts2 使用数组批量提交数据

 
阅读更多

首先是数组数据批量显示的问题。即由一个action到一个jsp页面怎么做?我以我自己写的代码为例。我在action中通过hibernate查到了一批数据,是一个list。即listCourseMsg。

 

 

arrayCourseMsg = listCourseMsg.toArray();//我把他转化成了数组
 

并且在这个action中添加了这个数组相应的get/set方法。

 

private Object[] arrayCourseMsg ;

	public Object[] getArrayCourseMsg() {
		return arrayCourseMsg;
	}

	public void setArrayCourseMsg(Object[] arrayCourseMsg) {
		this.arrayCourseMsg = arrayCourseMsg;
	}
 

然后这个数组就有了数据。内部是什么样的对象,下面说JSP的时候再说。下面是JSP页面的一部分:

 

<s:if test="arrayCourseMsg!=null">
                   <s:iterator value="arrayCourseMsg" status="stat">
                   <tr>
                   <td>
                   	<s:property value="%{arrayCourseMsg[#stat.index].msgTypeId}" />
                   	<s:hidden name="arrayCourseMsg[%{#stat.index}].id" value="%{arrayCourseMsg[#stat.index].id}" />
                   	<s:hidden name="arrayCourseMsg[%{#stat.index}].msgTypeId" value="%{arrayCourseMsg[#stat.index].msgTypeId}" />
                   </td>
                   <td>
                   <s:property value="%{arrayCourseMsg[#stat.index].msgTypeDescription}" />
                   <s:hidden name="arrayCourseMsg[%{#stat.index}].msgTypeDescription" value="%{arrayCourseMsg[#stat.index].msgTypeDescription}" />
                   </td>
                   <td>
                   	<s:property value="%{arrayCourseMsg[#stat.index].msgLogicId}" />
                   	<s:hidden name="arrayCourseMsg[%{#stat.index}].msgLogicId" value="%{arrayCourseMsg[#stat.index].msgLogicId}" />
                   </td>
                   <td>
                   	<s:checkbox name="arrayCourseMsg[%{#stat.index}].viaPm" fieldValue="true"></s:checkbox>
                   </td>
                   <td>
                   	<s:checkbox name="arrayCourseMsg[%{#stat.index}].viaEmail" fieldValue="true"></s:checkbox>
                   </td>
                   <td>
                   	<s:checkbox name="arrayCourseMsg[%{#stat.index}].viaSms" fieldValue="true"></s:checkbox>
                   </td>
                   <td>
                   <s:select list="#session[arrayCourseMsg[#stat.index].msgTypeId]" name="arrayCourseMsg[%{#stat.index}].defaultMsgId" listKey="msgId" listValue="msgPlainContent"></s:select>
                   </td>
                   </tr>
                   </s:iterator>
                   </s:if>

 这里主要是OGNL部分把我难住了,搞了很久。这里只说明一下s:select这个标签,因为这个不容易明白,(其他的不明白的,自己查一下ognl用法),一般要在页面中得到一个session应该是list="#session.SAMPLE", SAMPLE就是你在后台添加的session,arrayCourseMsg[#stat.index].msgTypeId得到的值就是一个session名。因为我在后台加了多个session.

 

还有一点,在其他标签中我这样用arrayCourseMsg[%{#stat.index}].viaSms来定义name。是为了修改这一系列的数据之后,提交给下一个action需要用到的。

这样做在页面中查看源码时:

 

name=arrayCourseMsg[0].viaSms

name=arrayCourseMsg[1].viaSms

这样的一系列值。

如果这样写的话arrayCourseMsg[#stat.index].viaSms :那么在页面中查看时,name就是:

arrayCourseMsg[#stat.index].viaSms

arrayCourseMsg[#stat.index].viaSms

再提交的时候,不容易定义name。

还有一点,像:

 

 

name=arrayCourseMsg[0].viaSms

 

name=arrayCourseMsg[1].viaSms

这样的一系列数组值,提交的时候,action怎么接收的问题?

下面是提交这样数据的时候,action类要做的:

1. 定义属性名以及set/get方法

private List<TrainingMessageTypes> arrayMessageTypes;

2. 实现这个接口implements ModelDriven 以及它的方法

 

public Object getModel() {

return arrayMessageTypes;

}

 

然后这个List--->arrayMessageTypes就能接收到所有的数组数据了。

 

 

 

 

 

 

1
2
分享到:
评论

相关推荐

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

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

    Struts2批量上传

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

    Struts2应用开发详解05

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

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

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

    Struts批量录入

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

    struts框架中formFile批量上传图片

    本篇文章将详细探讨如何使用Struts的`FormFile`来实现批量上传图片的功能。 ### 1. FormFile概述 `FormFile`是Struts的`org.apache.struts.action.ActionForm`类的一个属性,它提供了对上传文件的封装,包括文件名...

    struts2hibernate

    2. **Action设计**:在Struts2的Action中,接收批量操作的数据,如列表或数组,然后调用Hibernate的相关方法进行处理。 3. **Session操作**:使用Hibernate的SessionFactory创建Session,Session是操作数据库的接口...

    Struts2的转换器与验证框架

    在处理用户表单提交的数据时,Struts2提供了一套完善的转换器(Converter)和验证(Validation)框架,使得类型转换和数据验证变得更加便捷和高效。 ### 1. Struts2 内置转换器 Struts2 自带了一系列内置转换器,...

    ssh批量处理action层

    该方法通过遍历`String[] s_id2`数组来实现批量添加操作。具体实现逻辑如下: ```java public String lrcj() { try { for (int j = 0; j &lt; s_id2.length; j++) { this.i = j; score_luru(); // 调用单条记录...

    ssh中用到的批量删除

    在这个案例中,批量删除功能被应用于Struts Action层、Spring Service层、Spring DAO层以及Hibernate数据持久化层。 #### 1.1 DAO层设计 - **接口定义**:`public void deleteAll(List list);` - 这个接口定义了...

    valuelist

    2. **example-multiple.jsp**:可能展示了如何处理多选数据的情况,比如批量删除、编辑或过滤,这在需要处理大量数据时非常有用。 3. **index.jsp**:通常作为应用程序的主入口页面,它可能包含导航菜单和登录界面...

    java经验积累

    在提交数据时,如示例所示,使用jQuery的`datagrid`插件,将表单字段值拼接到URL中,以GET方式发送到`queryRole.action`,或通过`$.post`函数以POST方式发送到`editEmploySalaryInfo.action`。 3. **动态生成元素**...

    jdbc+jsp实现简单员工管理系统.doc

    在更复杂的Java Web应用中,通常会使用MVC(Model-View-Controller)框架,如Struts,来分离表现层、业务逻辑层和数据访问层,提高代码的可维护性和可扩展性。 综上所述,这个简单的员工管理系统利用了JDBC进行...

    自整理Java关于基础和框架的面试题

    ##### jdbc分段批量提交的时候出现异常怎么处理? - 使用事务管理,确保数据的一致性。 - 对异常进行捕获和处理。 ##### jdbc批量处理数据 - 使用`PreparedStatement`的`addBatch()`和`executeBatch()`方法批量处理...

    java高级工程师面试总结

    - POST请求用于提交数据,参数放在请求体中。 - GET请求长度受限,POST请求不受限。 - **Https协议的实现**: - 基于SSL/TLS加密传输。 - 客户端与服务器通过握手过程协商加密算法和密钥。 - 保证数据传输的...

    东南融通面试题 内部

    - 提供了验证功能,可以在提交到服务器之前进行数据校验。 2. **Struts框架的特点:** - MVC设计模式,将模型、视图和控制器分离。 - 支持国际化、文件上传下载等功能。 - 社区活跃,有大量的插件和扩展。 3. ...

    java反射机制应用

    在Web开发中,表单提交的数据通常需要填充到对应的实体类中。使用反射可以实现这一功能: - 使用`Class.forName()`加载表单对应的实体类。 - 使用`BeanUtils.populate()`方法将表单数据自动填充到实体类的属性中。 ...

Global site tag (gtag.js) - Google Analytics