如何使用spring在单个jsp页面中动态生成多个表单?

时间:2013-02-05 02:44:20

标签: jsp spring-mvc multiple-forms

我有一个场景,我想多次生成相同的形式。我的应用程序基于spring 3.0框架。

场景:基本上我正在为运输公司设计此应用程序,其中需要计划负载)哪个驱动程序承载哪个负载以及何时以及从哪个目的地到哪个目的地)。现在,问题是有时负载不会直接从原点传递到目的地,交付时会出现分裂,例如,一个驱动程序将从原点向某个点传送负载,并且另一个驱动程序将该负载从该点传送到目标。但是分裂的数量可能会有很大的变化。

所以我需要根据拆分的数量动态生成多个表单来调度负载,如

Enter first splits information
--------------------------------
form1
----------------------------------


Enter second splits information
--------------------------------
form2
-------------------------------

submit button

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作,

首先在jquery页面的jsp功能中添加以下代码,

for(var i=0; i<lcount;i++){ //lcount is number of splits.               
$('#tload'+i).load('url of controller class that helps in loading form');
}

将一些divs写在同一个jsp页面中id作为'tload1','tload2','tload3',等等。

<div id="tload1"></div>
<div id="tload2"></div>
<div id="tload3"></div>
............
............
so on

每当从控制器返回时返回到包含加载表单的iframe的jsp页面。使用上面显示的.load()功能会自动将包含您的表单的iframe加载到相应的div tags。就是这样,您的问题就解决了。

答案 1 :(得分:0)

以下是一些选项:

  1. 纯JavaScript方法 - 我会使用JS库,比如jQuery,但基本上有JS会将所需的部分添加到表单中。请参阅我的回答here
  2. 往返方法 - 让JSTL使用模型属性中的“拆分”列表构建表单。当用户点击“添加分割”时,您调用相同的URL,传入一个可选参数以指示应该有多少分割。它会在列表中添加一个新的返回到您的视图
  3. 我个人喜欢第一个,因为它减少了对后端的调用次数。你需要注意的一件事是你有一个添加和删除按钮。如果从模型属性中的地图/列表支持的列表中删除内容,则需要“清理”那些在您最终提交表单时仍然可以存在的条目。