`

form提交多个对象

阅读更多

声明:这篇博文写的对别人没有什么参考价值,仅仅给自己留个思路。

 

最近弄一个项目,基本业务是这样子的:

我选了5个工程,填到一个单子,根据单子的类型生成对应的单子,譬如说我选了两种单子类型,那么久需要生成2张单子,反正每个类型生成一个单子。

到这还没完,这个工程也是要分别生成资料单子的,譬如每个合同都对应一个合同文件,选了5个,就需要生成5份资料单子,也就是5个资料对象。

 

这就涉及到一个form表单提交好几个对象的问题,当然有了Spring这个问题解决起来也是小case。

说明:

工程单子对应的表:Table51

资料单子对应的表:Table55

1、先实例化一个Table51的对象,并给它get、set方法。再实例化一个List<Table55> table55List对象,也给它get、set方法。然后从Action中根据选定的工程获取每个工程的信息,并添加到Table51对象和table55对象中。通过request传递到页面上去。

 

2、JSP页面处理,这个是关键。处理Table51对象不是问题,处理Table55的多个对象是个大问题。因为Table55对象有多个,页面中用C:forEach标签循环,并且给input框添加上name属性,name='t55.field1'。这样子加完之后,一循环,这个form表单中就会出现多个name为t55.field1的input框,在提交的时候,这写同名的input内容就会被拼接到一起作为name='t55.field1'的字段值,从后台中直接获取t55.getField1()得到的就是所有name='t55.field1'值的集合。这当然不符合要求,为什么?字符串是用“,”进行连接的,万一我在填单子的时候手动输入了一个逗号,这样子就没法区分了。必须的给input一个既跟table55有关联又跟字段有关联还能一个form表单就提交多个table55对象的名字才行,试了好多回,最后的修改成功如下:

<!--普通情况:获取到的值只有拼接好的一个字段值-->
<c:forEach items="${table55List}" var="t55" varStatus="order">
<input type="text" value="${t55.field1 }" name="t55.field1" />
</c:forEach>

<!--修改之后:可以获取到多个对象,且每个对象对应字段的值独立-->
<c:forEach items="${table55List}" var="t55" varStatus="order">
<input type="text" value="${t55.field1 }" name="table55List[${order.index }].field1" > />
</c:forEach>

 修改之后的代码,因为每次循环得到的对象的name都不一样,所以传递到后台的结果也就不一样了。

 

3、后台接收:这个比较简单,list都拿到了,遍历一遍添加到数据库就OK啦。

 

分享到:
评论

相关推荐

    使用JQuery实现从JSON对象转换为form提交数据

    本篇文章将深入探讨如何利用jQuery从JSON对象转换为form提交数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和...

    struts1.2 from表单提交包含list的对象

    对于包含列表的表单,用户可能需要在页面上输入多条数据,如一个订单中包含多个商品。每个商品项可能都有自己的属性,如商品ID、名称、数量等。在HTML表单中,这些数据可以通过数组或列表的格式来表示,比如`[0].id...

    MVC 提交多个实体

    在ASP.NET MVC框架中,处理同时提交多个实体的情况是常见的需求,这通常涉及到表单的批量操作、关联数据的更新等。在这个场景下,我们需要理解如何有效地管理模型绑定(Model Binding)来接收并处理这些实体。下面将...

    在一个form表单里同时上传多个文件和文本信息的解决方案

    通过以上步骤,我们成功地在一个form表单中实现了同时上传多个文件和文本信息的功能。这种实现方式不仅提高了用户的使用体验,也方便了开发者对上传数据的管理和处理。在实际应用中,还可以进一步扩展该功能,例如...

    form提交的集中方式

    这三种方法各有特点,$.post()适合简单的POST请求,$.ajax()则提供了更多自定义选项,适用于复杂的请求逻辑,而ajaxForm()则是针对整个表单的提交,特别适合已有的HTML表单,无需手动构建请求数据。 在实际开发中,...

    不用form提交表单,用ajax上传文件

    "不用form提交表单,用ajax上传文件"是这种需求的一个典型场景。这种方式可以让用户在上传文件时无需等待页面刷新,而是通过Ajax(Asynchronous JavaScript and XML)技术实现实时反馈,提升交互体验。 在JDK 8版本...

    一个Struts1多文件上传实例(附Form中传List示例)

    表单中可以包含一个List类型的参数,允许用户输入多个值。在HTML中,这可以通过多次使用相同name属性的input元素实现。在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1...

    Spring下的AJAX和Form表单提交及单/多方法控制器比较

    在本文中,我们将探讨在Spring框架下,使用AJAX与传统Form表单提交的区别,以及单方法控制器和多方法控制器的使用场景。首先,我们来看看AJAX提交与Form表单提交的基本概念。 **AJAX(Asynchronous JavaScript and ...

    ajax form 提交 动态显示

    "Ajax Form提交 动态显示"这一主题涉及到如何利用AJAX处理表单提交,并实时更新页面内容。 1. **AJAX基础**: - AJAX的核心是XMLHttpRequest对象,它负责在后台与服务器通信。 - AJAX的工作流程包括创建...

    vue element el-form多表单验证.txt

    而在使用 Vue.js 搭配 Element UI 进行开发时,我们经常会遇到需要对多个表单进行同时验证的需求。本文将详细介绍如何通过 Promise 的方法实现 Vue Element UI 中的多表单验证。 #### 一、Vue Element UI 表单验证...

    基于form-data请求格式详解

    具体来说,multipart/form-data格式的请求体由多个部分组成,每个部分前都有一个分隔符,该分隔符包括两部分:一长串随机生成的分隔符以及两个连续的减号。每个部分都会包含自己的Content-Disposition和Content-Type...

    关于applicationx-www-form-urlencoded等字符编码的解释说明

    application/x-www-form-urlencoded的编码方式有很多优点,如: * 它是标准的编码格式,广泛应用于Web开发中 * 它可以将窗体数据编码为名称/值对,易于服务器解析和处理 * 它可以与get和post请求同时使用 然而,...

    java反射-在form提交的一些应用

    它提供了`BeanUtils.copyProperties()`方法,可以直接将一个对象的属性值复制到另一个对象,使得反射操作更为简洁: ```java try { BeanUtils.copyProperties(userForm, request.getParameterMap()); } catch ...

    excle文件form表单上传

    总结来说,"excle文件form表单上传"涉及了JSP表单设计、Servlet处理请求、文件操作、数据读取(Apache POI)、数据库交互(JDBC)以及异常处理等多个关键知识点。掌握这些技能,能帮助开发者实现高效、安全的Excel...

    jquery提交form表单

    `jquery.form.js`是jQuery的一个插件,它为表单提交提供了更高级的功能,如文件上传支持、多部分形式(multipart/form-data)和多种提交方式。安装此插件后,我们可以使用`.ajaxSubmit()`或`.submit()`方法: ```...

    form表单提交,jquery-form.js

    `jQuery-form.js`是一个流行的JavaScript插件,它扩展了`jQuery`库的功能,使得表单的提交、上传和处理变得更加简单和灵活。 ### jQuery-form.js 插件简介 `jQuery-form.js`插件由Malsup创建,它的主要目标是提供...

    一个Form数据拆分到不同的jsp中

    标题中的“一个Form数据拆分到不同的jsp中”是指在Web开发中,如何将一个大型的表单(Form)逻辑拆分成多个独立的JavaServer Pages(JSP)文件,以便更好地管理和维护页面结构。这种做法有助于提高代码的可读性和可...

    将form表单中的元素转换成对象的方法适用表单提交

    HTML表单由多个元素组成,如`&lt;input&gt;`、`&lt;select&gt;`、`&lt;textarea&gt;`等,每个元素都有一个`name`属性,用于标识该元素在表单数据中的位置。当表单提交时,浏览器默认会按照`name`属性的键值对形式编码数据,这就是所谓...

    通过button将form表单的数据提交到action层的实例

    在 Web 应用程序开发中,提交 Form 表单数据到后台服务器是一个常见的操作。通常情况下,我们会使用 Form 表单的 action 属性来指定提交的路径,但是在某些情况下,我们可能需要使用按钮来提交 Form 表单数据。今天...

    .net+ajax+jquery.form实现简单的图片批量上传源码

    这通常涉及到在用户交互后,例如点击按钮,通过JavaScript动态生成HTML表单元素,允许用户选择多个图片文件。每个图片文件对应一个`&lt;input type="file"&gt;`元素,用户可以选择本地的图片文件。 然后,使用`jQuery....

Global site tag (gtag.js) - Google Analytics