Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Трансляция JSP, интересное наблюдение 
:(
    Опции темы
Hidrag
Дата 22.2.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Дабы не плодить кучу jsp страниц я решил большую часть хтмл кода записать в БД и вызывать нужный "текст" в зависимости от параметров реквеста, данный хтмл который в БД содержит внутри себя скриплеты (блоки вида <%=param%>), естественно переменные для этих скриплетах определены и инициализированный в самой jsp (та часть кода которая постоянна на странице и не пишется в бд), но при выводе этого кода с помощью тех же скриплетов <%=dbm.getHTML(param)%> все выводится на страницу и правильно отображется кроме тех мест где были скриплеты они так и выводятся: "<%=param%>", то есть Java (или сервер приложений?) парсит код только первой страницы jsp а то что выводит скриплет просто выводит как есть...

даже не знаю, как теперь выкручиваться... со статичным хтмл все ок, а с динамичным не получается а все хотелось сделать средствами одной страницы jsp.


--------------------
user posted image
PM WWW ICQ   Вверх
powerOn
Дата 22.2.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(Hidrag @  22.2.2007,  22:40 Найти цитируемый пост)
то есть Java (или сервер приложений?) парсит код только первой страницы jsp а то что выводит скриплет просто выводит как есть...


гм.. а разве JSP страницы не компилируются в сервлет? При таком подходе вполне естественно, что код, который берется из бд, уже не подвергается обработке....


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
JUncle
Дата 23.2.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

Репутация: нет
Всего: 1



Цитата(Hidrag @  22.2.2007,  22:40 Найти цитируемый пост)
даже не знаю, как теперь выкручиваться... со статичным хтмл все ок, а с динамичным не получается а все хотелось сделать средствами одной страницы jsp. 

Мне кажется, есть смысл хранить только статический контент. Например статьи и пр.
Зачем динамический в базу то? (Тем более работать без ухищрений не будет).
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
Stampede
Дата 27.2.2007, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(Hidrag @  22.2.2007,  12:40 Найти цитируемый пост)
даже не знаю, как теперь выкручиваться... со статичным хтмл все ок, а с динамичным не получается а все хотелось сделать средствами одной страницы jsp.


Вот, кстати, еще один плюс в зачет шаблонным движкам: там динамику можно верстать на ходу. Например, в Velocity есть такая штука как RenderTool. Допустим, твой подгружаемый шаблон хранится в базе и содержит какую-то логику. Тогда делаем так:

Код

// достаем текст блока-шаблона из базы
String block = yourDataService.getTemplate(someParams);
// напихиваем в контекст всякие значения
Context ctx = new VelocityContext();
ctx.put("today", new Date());
// сливаем одно с другим
String html = new RenderTool().eval(ctx, block);


И фсех делов.

А еще можно экземпляр RenderTool положить в контекст, и обращаться к нему прямо из шаблона:

Код

$render.eval($ctx, $block)


В общем, возможности ограничены только вашей фантазией. Как говорится, думайте сами, решайте сами... smile


--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
y3u
Дата 28.2.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



шаблонные движки - это искусство smile

а касательно JSP - да, ак делать нельзя, при обращении к JSP контейнер смотрит, если JSP не из ап ту дейт, то он компилирует жысыпешку в обычный сервлет, далее, все что вставляется в нее - просто игнорируется и интерпретируется как обычный текст.
Цитата(Hidrag @  22.2.2007,  22:40 Найти цитируемый пост)
Дабы не плодить кучу jsp страниц я решил большую часть хтмл кода записать в БД и вызывать нужный "текст" в зависимости от параметров реквеста


а нельзя туда положить кусок XML кода, а не код со скриптлетами? к примеру, ты пишешь свой XML тег, в него кладешь параметры из реквеста, далее, кладешь кусок данных из БД и пропускаешь дальше через XSL трансформ, который исходя из параметров пропускает в готовую страничку только нужный контент...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Hidrag
Дата 28.2.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Цитата(y3u @  28.2.2007,  17:22 Найти цитируемый пост)
а нельзя туда положить кусок XML кода, а не код со скриптлетами? к примеру, ты пишешь свой XML тег, в него кладешь параметры из реквеста, далее, кладешь кусок данных из БД и пропускаешь дальше через XSL трансформ, который исходя из параметров пропускает в готовую страничку только нужный контент...

Интересная реализация, подумаю над ней...smile


--------------------
user posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.