|
Модераторы: LSD, AntonSaburov |
|
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Для обсуждения этого я создал отдельную тему: http://forum.vingrad.ru/index.php?act=ST&a...80&unread=1 Т.к. вероятно там много о чем можно поговорить. |
|||
|
||||
Nobody |
|
|||
Опытный Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 1 Всего: 16 |
Velocity - это, в отличие от JSP, совсем не обязательно серверная технология.
-------------------- |
|||
|
||||
Се ля ви |
|
|||
Java/SOAрхитектор Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 3 Всего: 127 |
Тут вот по работе столкнулся-таки с велосити. В принципе штука удобная, но что огорчает, так это отсутствие типизации - чем-то мне отдалённо помесь JS и SSI напомнило. И так же огорчает отсутствие поддержки в средах разработки - например, не нашёл никакого путного плагина для IDEA.
-------------------- |
|||
|
||||
Stampede |
|
||||
Гносеолог Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Ну хорошо, давай пофантазируем, как выглядел бы синтаксис шаблонного движка, если бы он поддерживал типизацию. Допустим, мы имеем некую страницу интернет-магазина, которая использует следующие переменные:
Мы могли бы предусмотреть синтаксис для объявления переменных, что-то вроде:
Хорошо это было бы или плохо? Если сделать объявление опциональным (ведь движку все равно, есть объявление или нет: он ведь полагается на runtime информацию и рефлексию), то не исключено, что это была бы полезная фича: можно было бы написать плагин, который по крайней мере может делать:
Но он по-прежнему был бы бесполезен для контроля того, что все используемые переменные попадают в контекст, и причем под правильными именами, потому что эта инфа доступна только в рантайме. Но вот заставлять разработчика делать явные объявления - это будет уже насилие над личностью А что касается опционального объявления, то это вполне можно было бы реализрвать как надстройку в форме синтаксиса, который Velocity воспринимает как комментарии, например ##use вместо #use. И уже на этой основе наваять соответствующий плагин. Если кто хочет отличиться, дарю идею бесплатно Тут ничего нереального нет - надо просто взять и сделать. |
||||
|
|||||
Aazmandius |
|
|||
O_o Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2006 Где: Vancouver Репутация: 3 Всего: 6 |
А вот такой вопрос:
можно ли шаблон включить внутрь другого шаблона? и что при этом делать с контекстами, которые в общем случае могут быть разными? Грубо говоря, например у нас есть шаблон, который описывает некую веб-страницу, он включает в себя хэдер, футер и др. области. Каждой из областей соответствует свой шаблон, который нужно вставить в нужное место шаблона страницы. Контексты у них допустим разные, возможно ли такое подключение? Вот нашел в документации: One of the fundamental and important parts about Velocity is the resource management system and the resource loaders. They are referred to as 'resources' here rather than 'templates' because the resource management system will also handle non-template reasources, specifically things that are loaded via the #include() directive. Судя по этому, поддержка подгрузки шаблонов есть, но как ее реализовать? Это сообщение отредактировал(а) Aazmandius - 19.6.2006, 15:55 |
|||
|
||||
Aazmandius |
|
|||
O_o Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2006 Где: Vancouver Репутация: 3 Всего: 6 |
Решение почти найдено Нужно использовать директиву #parse(), только вот что делать с контекстом шаблона, который мы парсим? куда его подключать?
Это сообщение отредактировал(а) Aazmandius - 20.6.2006, 15:13 |
|||
|
||||
tux |
|
|||
Летатель Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
||||
|
||||
Tony |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
А можно ли перенести из sessionContext и aplicationContext в VelocityContext аттрибуты? Но не потупому 4ерз for .
|
|||
|
||||
Stampede |
|
|||
Гносеолог Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Смотря что имеется в виду: javax.ejb.SessionContext? А "aplicationContext" - это что за зверь? Класс из какого-то конкретного контейнера? Или просто некий общий контекст приложения? В принципе самое, пожалуй, универсальное решение - это написать обертку-адаптер, который будет имплементировать интерфейс org.apache.velocity.context.Context. Там всего пять методов, которые при реализации надо будет просто перенаправить подлежащему мапу или другому контексту: containsKey(), get(), getKeys(), put(), remove(). Но можно и по-деревянному, положить весь контекст в VelocityContext под своим именем и доступаться к его элементам, используя синтакс Velocity, например $applicationContext.get("someKey"); Понятно, что второй способ менее удобен, потому что в первом варианте мы бы обратились к этому же объекту просто как $someKey. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
Tony |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
Я имел в виду web.Скажем есть сервлет я беру sessionContext i servletContext в обоих есть аттрибуты.Как сделать 4тобы Velocity увидел их.Коне4но можно по тупоми через for перекладывать но ...
|
|||
|
||||
Tony |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
решил так: Simple test: $test.id
|
|||
|
||||
Alexandr87 |
|
|||
дыкий псых Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
есть какиендь шаблоны для сервлетов-контроллеров, использующих velocity?
|
|||
|
||||
rilio |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 28.10.2006 Где: С-Петербург Репутация: нет Всего: нет |
Вот есть пример очень простого фреймворка на Velocity + AJAX: Rilio framework . Документация частично на русском. Это сообщение отредактировал(а) rilio - 28.10.2006, 21:49 |
|||
|
||||
Stampede |
|
|||
Гносеолог Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
||||
|
||||
Alexandr87 |
|
|||
дыкий псых Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
имено шаблоны проектирования.
|
|||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |