如何使用Spring MVC从表单中获取列表
问题描述:
我有一个List(List),我已经在表单中定义了它。我想把这个列表传递给jsp。我使用的框架是spring mvc。难点在于我无法填充列表。我知道我必须写一个foreach语句,但我试过了,没有发生任何事情。我跟着this的例子,但同样的情况再次发生。有人有想法吗?如何使用Spring MVC从表单中获取列表
答
你有试过吗? http://viralpatel-net-tutorials.googlecode.com/files/SpringMVC_Multi_Row.zip
我将这个项目导入到我的STS并运行它,然后我成功地获得了元素列表。
我使用以下软件:
- 的Tomcat 7.0.39
- STS 3.2.0
- 的Java 1.7
希望这有助于。
答
谢谢大家,帮助我解决我的问题。我终于找到了解决方案。 在形式上我写了@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--;
}
});
这样,我不得不每场索引,这样我就可以很容易地呈现每个错误
我已经写了相同的代码,因为我提供的例子。我现在没有确切的代码。我想从jsp中获取值。这些值位于列表中。 – 2013-04-22 18:38:12
先从更基本的东西开始。您可能没有将List列入模型。你也应该知道Spring使用一个特殊的'List'来完成多个对象(或者至少在我最后一次使用它的时候)。 – 2013-04-22 19:29:05
我认为你的意思是lazylist ... – 2013-04-22 19:31:47