JSTL foreach var отправка в jsp / servlet - PullRequest
0 голосов
/ 17 мая 2011

Я хочу знать метод, как я могу отправить 1 указанный элемент для foreach JSTL другому JSP или сервлету, чтобы напечатать подробную информацию об этом элементе.

Предоставление следующего кода:

    <c:forEach var="note" items="${notes}">
        <tr>
            <td>${note.getTitle()}</td>
            <td>${note.getRealDate()}</td>
            <td>${note.getUserDate()}</td>
            <td>
                <form action="showdetails.jsp">
                    <input type="submit" value="show details" name="details" />
                </form> 
            </td>
        </tr>
    </c:forEach>

Мне нужно заменить мою форму или переделать ее, чтобы получить что-то, что выполняет свою работу, и у меня нет идей ...

ах, кстати.Примечание имеет метод, показанный выше + showDetails() с возвращением String.И я хочу отобразить их все, или просто сделать String all = note.toString(); в jsp / servlet

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

Просто передайте идентификатор в качестве параметра запроса и измените URL на сервлетный.Если вы настаиваете на использовании кнопки отправки, передайте идентификатор в качестве скрытого поля ввода:

<form action="showdetails">
    <input type="hidden" name="id" value="${note.id}" />
    <input type="submit" name="details" value="show details" />
</form>

В сервлете, который сопоставлен с шаблоном URL-адреса /showdetails, просто выполните следующую работу в doGet()Метод:

String id = request.getParameter("id");
Note note = noteService.find(id);
request.setAttribute("note", note);
request.getRequestDispatcher("/WEB-INF/showdetails.jsp").forward(request, response);

В showdetails.jsp вы можете затем использовать ${note} для доступа к выбранному Note.

Точно вышеупомянутый сервлет также можно использовать, когда вы используете ссылку вместокак предлагает Божо, с одним небольшим отличием в сервлете вы можете предварительно обработать запрос (найти и подготовить правильный Note объект для отображения).

<a href="showdetails?id=${note.id}">show details</a>

См. также:

3 голосов
/ 17 мая 2011

Вам не нужно <form>.Просто добавьте ссылку, используя поле, однозначно идентифицирующее элемент:

<a href="showdetails.jsp?noteId=${note.id}">show details</a>
...