Ваш вопрос немного неясен.Ответ двоякий:
Отображение списка адресов
@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, здесь отмеченной какпрефикс 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, который при нажатии кнопки или около того создает два дополнительных поля формы.Убедитесь, что каждое поле формы получит уникальное имя, например:
<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++;
});