Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Из servlet в JSP


Автор: Wanderer2019 3.2.2005, 17:20
Здравствуйте! Знает ли кто как можно передать объект, собственнного производства из сервлета в JSP страницу... т.е. есть свой класс... на основе его в сервлете создается некий объект, ктоторый после этого дожен отправиться на JSP страницу и там считаться... Как это лучше реализовать?
я делаю так:
(мне нужно передать массив объектов)
т.е. я создаю свой объект:
Код

manager mn=new manager();
Vector table=new Vector();// и вектор заодно

затем формирую вектор моих объетов(значения читаются из БД):
Код

     while(rs.next()){
       manager mn=new manager();
       mn.setId(rs.getInt(7));
       mn.setLogin(rs.getString(1));
       mn.setFname(rs.getString(2));
       mn.setLname(rs.getString(3));
       mn.setPhone(rs.getString(4));
       mn.setEmail(rs.getString(5));
       mn.setRole(rs.getString(6));
       mn.setPassword(rs.getString(8));
       table.add(mn);
     }

после этого пытаюсь его послать:

Код

     ObjectOutputStream out =
        new ObjectOutputStream(response.getOutputStream());
    out.writeObject(table);
    out.flush();
    out.close();


сообщение об ошибке:
Код

ensys.manager

Автор: Domestic Cat 3.2.2005, 18:24
Можно добавить объект к сессии в сервлете:
Код

request.getSession(true).addAttribute("vector", myVector);


а в jsp считать

Код

<% Vector myVector = (Vector) sesson.getAttribute("vector");
//....
%>

Автор: 3,14 3.2.2005, 18:29
А вообще такая тема уже была : http://forum.vingrad.ru/index.php?showtopic=34216, хотя там меня и подвели к другому решению жтой проблемы, но всё же ответы на поставленный вопрос там имеються.

Автор: Domestic Cat 3.2.2005, 18:46
Нет, тут другое немного. Передача из сервлета в jsp страницу - дelo обычное, если нe хочешь напрямую из сервлетa в респонс хтмл писать то цепляешь объекты к сессии, или приложению, а нa страничкe читаешь их и засовываешь куда надo (в таблицу напримer).

Автор: Wanderer2019 4.2.2005, 16:43
а как в response добавить?
Добавлено @ 16:46
у меня почему то такого request.getSession(true)
Код
.addAttribute("vector", myVector);
нет!

Автор: Wanderer2019 4.2.2005, 17:39
всмысле он почему то не вызывается... как будто такого метода нет...

Автор: Souljah 7.2.2005, 11:13
наверное, у тебя в метод service или doXXX передается ServletRequest а не HttpServletRequest.
попробуй так:
((HttpServletRequest)request).getSession()

и еще - если объект формируется в сервлете а затем для вывода форвардится на JSP (так обычно и делается) - лучше сохранять его как атрибут запроса
request.setAttribute(...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)