我有一个项目列表(List),我通过get请求传递给JSP页面。
@RequestMapping(value="value", method = RequestMethod.GET)
public void getItems(ModelMap model) {
List<Item> items = itemDataService.getItems();
model.addAttribute("items", items);
}
JSP看起来像这样:
<form method="POST">
<div id=itemsList>
<div class="box">
<table class="display" width="100%">
<theader>
<th>Item Name</th>
<th>Item Description</th>
<th>Accept Setting</th>
</theader>
<tbody class="list">
<c:forEach var="item" items="${items}" varStatus="loopStatus">
<tr>
<td> ${item.name}</td>
<td>${item.description}</td>
<td><input type="checkbox" id="chkbox" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<input type="submit" value="Save Items">
</form>
我现在要做的是,当我点击表单的提交按钮时,我想将一个项目列表传回控制器。我的问题是我不知道如何命名该部分中的字段,以便每个表行都被视为一个项目,以及如何确保这些项目将作为列表发送到控制器。
到目前为止,控制器中的POST方法如下所示:
@RequestMapping(value="value", method = RequestMethod.POST)
public void onSubmit(ModelMap model) {
System.out.println("##################### FORM SUBMIT");
}
到目前为止,在提交表单时触发POST操作,但如何传递数据? item类本身具有名称和描述的getter和setter以及复选框值...
答案 0 :(得分:0)
尝试使用spring form
标记。
希望他们有各自的setter和getter方法,
<form:form method="post" action="update" modelAttribute="Objectname">
<div id=itemsList>
<div class="box">
<table class="display" width="100%">
<theader>
<th>Item Name</th>
<th>Item Description</th>
<th>Accept Setting</th>
</theader>
<tbody class="list">
<c:forEach var="item" items="${items}" varStatus="loopStatus">
<tr>
<td> ${item.name}</td>
<td>${item.description}</td>
<td><input type="checkbox" id="chkbox" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<input type="submit" value="Save Items">
</form:form>
在控制器中,
@RequestMapping(value="value", method = RequestMethod.POST)
public void onSubmit(@ModelAttribute ModelClass Objectname) {
Objectname.getterMethod();
System.out.println("##################### FORM SUBMIT");
}
希望这会有所帮助!!
答案 1 :(得分:0)
您有一个Java列表,您要将它发送到JSP,然后再将相同的列表发送回Java吗?如果我的理解是正确的,我建议你在传递给JSP之前将列表存储在会话范围内(即在getItems方法中),当你在JSP中提交表单时,从onSubmit方法的session属性中获取列表。