你的問題有點不清楚。答案是雙重的:
顯示地址
@Controller
public class SomeController {
@RequestMapping("/somepage.jsp ")
public String somePage(HttpServletRequest request, ModelMap model) {
List<Address> addresses = ....
// We can now access the key "addresses" in our jsp
model.put("addresses", addresses);
return "/WEB-INF/jsp/somepage.jsp";
}
}
在JSP頁面的列表中,您可以顯示使用例如地址列表中,core
JSTL的lib,這裏要注意使用前綴c
。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
...
<c:forEach items="${addresses}" var="addr">
City: ${addr.city} <br/>
Street: ${addr.street}
</c:forEach>
....
</html>
提交地址
如果你正在尋找提交地址的未定義的數字,這是一個多一點棘手。你可以做的是創建一個javasript表單模板,通過按下按鈕或兩個附加的表單字段creates。確保每個表單字段將獲得一個唯一的名稱,例如:
<input type="text" name="street_1" />
<input type="text" name="city_1" />
<input type="text" name="street_2" />
<input type="text" name="city_2" />
....
然後你可以使用request.getParameterMap()
,在那裏你構建基於匹配名稱(例如,street_1應該CITY_1等相關地址選項迭代領域向前)。
[編輯]爲了給你一個關於javascript的樣子,我從頭開始給你這個(注意我沒有測試過這個代碼,它給了你一個想法它可能可能看起來像)。
var i = 0; // initialize to how many addresses you initially display
function addAddress() {
var form = document.getElementById('form');
var html = '<input type="text" name="street_' + i + '" />' +
'<input type="text" name="city_' + i + '" />';
form.innerHTML += html;
i++;
}
按下一個按鈕時,然後調用JavaScript:
<input type="button" onClick="addAddress();" value="add address" />
如果你決定使用例如,jQuery這將是更容易。例如,
var i = 0:
$("#addbtn").click(function() {
$("#someId").append(
'<input type="text" name="street_' + i + '" />' +
'<input type="text" name="city_' + i + '" />');
i++;
});
infinit是什麼意思?世界上的一切都有限制。你的意思是說你需要提交n個Address類型的實例嗎?請詳細說明。 – 2011-02-14 07:52:57