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


Автор: initmax 23.10.2009, 14:56
Доброго, 
Задался вопросом как всего правильнее передать собраную информацию из Servlet в JSP
По входящему запросу от пользователя doGET, Servlet формирует некий объект Page который содержит все данные о странице 
1) Тетму
2) Заглавие
3) Текст
...
в данном объекте есть методы плана ger_theme, get_page.. по которым как очевидно из названия происходит возвращение строки String содержащей текст
данный текст желаю отобразить в JSP, при этом вижу два варианта для решения этой задачи

1) предать объект в JSP 
    request.setAttribute("page", PageObj);
//перенапрвить выполнение сценария в JSP
           RequestDispatcher Dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/jsp/index.jsp");
           Dispatcher.forward(request, response);

После чего задействовать скриплет <% %> в котором и вызывать данные методы


2) вызов методов оставить в самом Servlet, а результат выполнения метода String передавать в JSP

как кто делает? какие ещё варианты кто может подсказать?
Спасибо за внимание.

Автор: sith 23.10.2009, 15:50
помойму лутше прикрутиться Spring MVC...

Автор: garbuz 23.10.2009, 15:54
В сервлете формируйте объект Page, кладите в request и на jsp с помощью JSTL отображаете данные из этого объекта. Скриплеты не очень хорошая практика на сегодня.

Добавлено через 6 минут и 49 секунд
Цитата(sith @  23.10.2009,  15:50 Найти цитируемый пост)
помойму лутше прикрутиться Spring MVC... 

На спринг сперва забейте, смотрите пока голые сервлеты и жсп. Со спрингом успеете.

Автор: Samotnik 24.10.2009, 02:38
Код

request.setAttribute("page", pageObj);

на клиетнте 
Код

${page.theme}
${page.name}

Цитата(initmax @  23.10.2009,  14:56 Найти цитируемый пост)
После чего задействовать скриплет 

Забудь, что такое скриплет smile

Цитата(sith @  23.10.2009,  15:50 Найти цитируемый пост)
помойму лутше прикрутиться Spring MVC...

Зачем ? Абсолютно лишне  smile 

Автор: v333 24.10.2009, 09:27
Цитата(Samotnik @ 24.10.2009,  02:38)

Забудь, что такое скриплет smile




Почему?


Цитата(garbuz)

Скриплеты не очень хорошая практика на сегодня.

Почему? Вам тоже когда-то (в одной Вашей теме про Spring читал) советовали не использовать скриптлеты. По всей видимости Вы поняли что и почему так важно не_использовать их. Не могли бы поделиться своим взглядом на это.

Автор: ming 24.10.2009, 13:16
Цитата(v333 @ 24.10.2009,  12:27)
Почему?

вставки java-кода внутри HTML загрязняют код

Автор: Samotnik 24.10.2009, 13:57
Цитата(v333 @  24.10.2009,  09:27 Найти цитируемый пост)
Почему?

Почитайте про концепцию http://ru.wikipedia.org/wiki/Model-View-Controller
Представление должно быть отделено от логики.  Java  должен быть отделен от  JavaScript  и html работа с БД, должна быть отдельно,  взаимодействие  клиент-сервера  отдельно smile 

Автор: initmax 26.10.2009, 11:55
Все кричат, что скриплеты есть ЗЛО, но для работы JSTP пользуют тот же скриплет вставки 
ацию на экран: 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/sql" %>
....
Судя по всему JSTL это либа которая посредством ключевых слов, выполняет скреплет.

Зачем инкапсулировать это в листинг?
Сайт во время выполнения стаскивает либу для работы с JSTL с офф сайта?

Автор: necromancer 27.10.2009, 14:05
мда.... читаем книжки гуглим, что ыб не задавать совершенно глупых вопросов.

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