如何使用Spring MVC从表单中获取列表

问题描述:

我有一个List(List),我已经在表单中定义了它。我想把这个列表传递给jsp。我使用的框架是spring mvc。难点在于我无法填充列表。我知道我必须写一个foreach语句,但我试过了,没有发生任何事情。我跟着this的例子,但同样的情况再次发生。有人有想法吗?如何使用Spring MVC从表单中获取列表

+0

我已经写了相同的代码,因为我提供的例子。我现在没有确切的代码。我想从jsp中获取值。这些值位于列表中。 – 2013-04-22 18:38:12

+0

先从更基本的东西开始。您可能没有将List列入模型。你也应该知道Spring使用一个特殊的'List'来完成多个对象(或者至少在我最后一次使用它的时候)。 – 2013-04-22 19:29:05

+0

我认为你的意思是lazylist ... – 2013-04-22 19:31:47

你有试过吗? http://viralpatel-net-tutorials.googlecode.com/files/SpringMVC_Multi_Row.zip

我将这个项目导入到我的STS并运行它,然后我成功地获得了元素列表。

我使用以下软件:

  • 的Tomcat 7.0.39
  • STS 3.2.0
  • 的Java 1.7

希望这有助于。

+0

你的链接不起作用。更新它,ping我在评论的,我会删除downvote :) – Nenotlep 2017-03-06 07:19:00

+0

它实际上建议包括一些代码和解释什么是解决方案,如果可能的话。 – Nenotlep 2017-03-06 07:20:18

谢谢大家,帮助我解决我的问题。我终于找到了解决方案。 在形式上我写了@Valid private SubmitAEActivityForm[] person;然后我写了一个包含我想要的字段的类。之后,在我的JSP中,我写道:

c:forEach items="${submitAEForm.aifs}" var="holdData" 
           varStatus="loop"> 
           <c:set var="indexLoop" value="${loop.index}" scope="request" /> 
           <c:set var="items" value="${holdData}" scope="request" /> 
           <c:import url="/WEB-INF/jsp/common/prototype.jsp"></c:import> 

          </c:forEach> <c:remove var="items" /> 

prototype.jsp包含我想克隆的字段。我jQuery代码是:

function initDivList(addBtn, removeBtn, hiddenDivId, displayDivId) { 
    var i = 0; 
    $(addBtn).click(function() { 
     $(hiddenDivId).clone().find('input, select').each(function() { 
      $(this).attr({ 
       'name': function(_, name) { return name.replace("$NAME$", i); } 
       }); }).end().fadeIn(1000).appendTo(displayDivId).css("display", "block"); 

     $(removeBtn).click(function() { 
      $(this).parent().remove(); 
     }); 
     i++; 
    }); 
    $(removeBtn).click(function() { 
     $(this).parent().remove(); 
     if (i > 1) { 
      i--; 
     } 
    }); 

这样,我不得不每场索引,这样我就可以很容易地呈现每个错误