Как передать информацию из сервлета на страницу JSP? - PullRequest
8 голосов
/ 14 февраля 2010

Возможно ли иметь сервлет, который содержит объект (в данном случае ArrayList), который затем эквивалентен отображению страницы jsp и передаче этого объекта странице jsp. В этом случае ArrayList содержит результаты базы данных, которые я хочу перебрать и отобразить результаты на странице JSP.

Я не использую какую-либо инфраструктуру MVC, возможно ли это сделать с помощью базовой архитектуры Servlet / JSP.

Ответы [ 4 ]

10 голосов
/ 14 февраля 2010

Да.

  1. при вызове сервлета request.setAttribute("result", yourArrayList);
  2. , затем перешли к jsp:

    getServletContext().getRequestDispatcher("your.jsp")
        .forward(request, response);
    
  3. с использованием JSTL, в jsp:

    <c:forEach items="${result}" var="item">
      ...
    </c:forEach>
    

Если вы не хотите использовать JSTL (но я рекомендую его использовать), то вы можете получить значение, используя request.getAttribute("result") и в JSP.

В качестве альтернативы, но не рекомендуется, вы можете использовать request.getSession().setAttribute(..) вместо этого, если вы хотите redirect() вместо forward().

2 голосов
/ 28 октября 2010

Если вы пытаетесь создать какой-то «компонент», то лучше конвертировать страницу JSP в пользовательский тег. Вот отличная статья об этом: http://onjava.com/pub/a/onjava/2004/05/12/jsp2part4.html

2 голосов
/ 14 февраля 2010

Вы можете поставить его используя request.setAttribute ("myobj", myObj); см javadoc

2 голосов
/ 14 февраля 2010

Вы можете передавать объекты в jsp, встраивая их в запрос.

request.setAttribute("object", object);

и внутри JSP:

request.getAttribute("object");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...