2011-11-18 22 views
0

我有一个.JSP页面如下表:从JSP传递对象去春来控制器

<form:form method="post" action="update.dtt" id="contactForms" modelAttribute="contactForms" > 
<c:forEach items="${pList}" var="cf"> 
<tr> 
<td align="center"><c:out value="${cf.fname}" /></td> 
<td align="center"><c:out value="${cf.lname}" /></td> 
<td align="center"><c:out value="${cf.cprovider}" /></td> 
<td align="center"><c:out value="${cf.id}" /></td> 
<td align="center"><c:out value="${cf.phone}" /></td> 
<td><input type="submit" value="Update Contact"/></td> 
</tr> 
</c:forEach> 
</form:form> 

我遍历列表(这是一个对象的列表),添加更新联系人按钮,每个记录在列表中。点击更新按钮时,如何将特定实例(对象)传递给控制器​​?

我拥有的控制器如下。但是我变得空。

@RequestMapping(value = "/user/update.dtt", method = RequestMethod.POST) 
public String updateView(@ModelAttribute("contactForms") Banks bank,  HttpServletRequest request, HttpServletResponse response, Model model) { 

    System.out.println("*First Name*" + bank.getFname()); 
//...... 

    return "detailBank"; //name of jsp file 
} 

回答

1

你需要对你要发送到服务器的每个信息隐藏表单域。

由于每行有一个按钮,因此每行应该也有一个表单。所以<form:form></form:form>行应该在<c:forEach>之内,而不是在外面。

+0

我曾尝试在for循环中有。它仍然返回空。 – srock

+0

您的表单中没有任何表单域。您需要在表单中添加隐藏的字段。我在回答中告诉过你。如果你不发送任何东西,你如何期望Spring能够猜测联系人是什么? –

+0

知道了,谢谢。如果我没有使用

并有链接,即 instead of buttons? – srock

0

您需要按位置引用实例,按位置访问列表元素。

list[i].name 
list[i].surname 

其中list是pojo中的元素。

+0

这并没有提供原始问题的解决方案。 – andr

相关问题