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


Автор: Valeria 2.2.2007, 13:16
вопрос такой:есть несколько страниц,на них повторяющиеся элементы,но с разными значениями,например разное название у кнопок.
я выделяю такие блоки в отдельный файл и передаю те параметры,которые отличаются

Код

 <%
                                session.setAttribute("header","Attach a component ");
                                session.setAttribute("button","Attach selected component");
                     %>
                            <%@include file="inc/sr_search-select.inc" %>


файл sr_search-select.inc
Код

<%
String header = (String)session.getAttribute("header");
String button = (String)session.getAttribute("button");
...
<%=header%>
...
%>


так вот один раз работает,а второй раз пишет,что такой элемент уже определен header is already defined 
как же быть?! чтобы генерились страницы с разными названиями?

Автор: tux 2.2.2007, 13:31
Код

if (session.getAttribute("header") == null) session.setAttribute("header","Attach a component ");

Автор: Valeria 2.2.2007, 13:38
tux,  так сессия уже будет ненулевая! может ее обнулить как-то можно?

Автор: tux 2.2.2007, 13:41
Удалить атрибут так:
Код

session.removeAttribute("header");

Сессия разрушается веб-контейнером по тайм-ауту.

Автор: YuG 2.2.2007, 13:41
Попробуй так:

файл sr_search-select.inc
Код

<%    
if (true) {
        String header = (String)session.getAttribute("header");    
        String button = (String)session.getAttribute("button");    
        ...    
        <%=header%>    
        ...    
}
%>

Если поможет, объясню )

Автор: Valeria 2.2.2007, 14:33
tux, нет,не получается,если сессию удалять перед использованием ее второй раз.

YuG, и это тоже не работает

Автор: Valeria 2.2.2007, 15:04
а может можно по-другому параметры передавать?!не через сессию?

Автор: batigoal 2.2.2007, 16:27
Цитата(Valeria @  2.2.2007,  16:04 Найти цитируемый пост)
а может можно по-другому параметры передавать?!не через сессию? 

Custom-теги - и через атрибуты. Я так и делал.

Автор: Valeria 2.2.2007, 16:38
batigoal,  я так не умею! подскажите мне.

Автор: batigoal 2.2.2007, 17:17
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPTags.html
Там ничего сложного.

Автор: YuG 2.2.2007, 18:31
Valeria, теперь я внимательно ) прочитал задание (был не прав со своим первым советом).

Итак, на моей машине твой код работает нормально (а почему бы и нет? - параметр сессии можно менять скока хочешь раз).

Давай точные данные:
- полный код всех страниц
- полный stackTrace ошибки.

Да, и что за сервер и т.д.?

Автор: Valeria 5.2.2007, 11:33
вот такая ошибка:
331: header is already defined in _jspService
String header = (String)session.getAttribute("header");
       ^

это при обращении второй раз к файлу,где эти параметры берутся!

Добавлено @ 11:39 
все,разобралась! 

написала так: 
Код

 <%     
                            String header = null;
                            String button = null;
                            session.setAttribute("header","Replace this component's data ");
                            session.setAttribute("button","Replace");
                            %>

чтобы один раз определять!  smile 

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