![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Недавно пришла в голову вот какая мысль, а ведь можно разработать программную модель для всех HTML элементов, и создавать страницы, используя код примерно такого вида:
Я не хочу сказать, что это было бы очень удобным способом программирования стрвниц, но если не доводить сей подход до крайности и абсурда, а использовать отдельные HTML элементы в таком представлении для автоматизации отдельных задач (например, автогенерация HTML форм из метаданных), то такая вещь в связке, например, с шаблонным движком - могла бы расширить арсенал программиста. Ну и вот. Так вот я и думаю, наверняка кто-то такое уже разрабатывал. Не может быть, что такая очевидная идея не пришла в голову еще кому-нибудь. Поэтому вопрос: если слышали про такие штуки - колитесь, пожалуйста ![]() |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
Для определенных задач вполне удобно. В Ruby такое есть и, не скрою, это иногда очень помогает.
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
Element Construction Set - похоже на то, что ты описываешь. При использовании получается такой код:
--------------------
будешь на Земле - заходи |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
А разве тема Velocity не о таком варианте ? Хотя я давно очень читал - может и не понял точно все тогда.
|
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Нет-нет, это совсем разные вещи. Я говорю о библиотеке, где все HTML элементы были бы представлены в виде классов: Head, Body, P, UL, LI, Table, TR, TD и т. д. ![]() А про Velocity - обязательно напишу. Похоже, народ так и не понимает, в чем от него кайф. А кайф - огромный! Шмель - в самую точку. Администрация, прошу представить товарища к награде ![]() |
|||
|
||||
simanyay |
|
||||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
А мы всё ждём-с...
Награждён почетным орденом "+". -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
||||
|
|||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Георгиевский крест? ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Что? Крест имени меня? Спасибо, конечно, но, право же, не стоит...
![]() Stampede Есть закрепленный топик на тему Velocity: http://forum.vingrad.ru/index.php?showtopic=44988. Есть желание - дополни, скажу спасибу. ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Дак, я ж знаю. Я же именно там и обещался. И выполнил - встречайте: Для чего же все-таки нужна Velocity |
|||
|
||||
Stampede |
|
||||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Кстати, вот пример ситуации, где подобный класс будет весьма полезным. Посмотрите на тег <head>. В динамическом проложении он, как правило, хранится в отдельном файле и подключается при помощи какой-нибудь include в той или иной форме форме.
Но содержимое тега <head> само по себе переменное и зависит от страницы. Хорошо, если изменяется только Title, тогда все относительно просто. А что если нужен разный Content-Tipe, например в многоязыковом проекте? А что если CSS подключается разный? А если нужно больше одного CSS файла? Передавать списком и итерировать в коде шаблона? Плюс та же фигня с мета параметрами http-equiv. Не слишком ли громоздко получится? А теперь представим, что у нас есть класс Head с такими методами:
Тогда мы запросто все это можем подготовить в классе, отвечающем за подготовку данных для шаблона, а в самом шаблоне просто одной строчкой сослаться на объект класса Head:
По соглашению Velocity при такой записи вызывается метод toString() ссылемого объекта. Который в случае класса Head должен делать то, что от него и ожидается: рендерить себя в HTML. Куль? Да, куль. Тут опять надо заметить, что наиболее естественным образом такой фокус можно осуществить, если приложение спроектировано в идеологи Velocity (см. статью о Velocity) Теперь смотрим на то, как класс Head реализован в библиотеке Jakarta ECS (Element Construction Set). А очень тупо он реализован. Слшком общО. Описания API в Javadoc в онлайне для него не нашел, поэтому привожу по той документации, что идет в пакете:
Нахера?! Вы же не generic API создаете, у вас же конкретная библиотека классов. Сделайте так, чтобы ею было удобно пользоваться! Дайте мне convenience методов. Чтобы можно было одной строчкой добавить CSS или там HttpEquiv - неужели так трудно? И ведь явно для себя писали, не для дяди, а вот поди ж ты. Короче, блин, как меня это уже задрало. Ни на кого нельзя положиться, все приходится делать самому. И буду делать. А кому щас легко ![]() |
||||||
|
|||||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
[выжидательно смотрит] ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Domestic уже сказал
![]() Просто я так и не поверил, что это лучше, чем использовать Expression Language. Но это уже мои проблемы. Потом пощупаю сам и решу. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 3 Всего: 144 |
Так давайте же обсуждать! Я же завершаю статью приглашением к обсуждению. В этом ведь главный пойнт нашего здесь тусения. А может я действительно неправ? Может, я чего-то важного не понимаю в этой жизни?
Я, между прочим не о регалиях, а о простом человеческом спасибе, которое было обещано. Старался, как-никак ![]() -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
Спасибо! И даже большое!
![]() А насчет обсуждения - пока я сам не попробовал, я не смогу квалифицированно вести дискуссию. Так что обождем. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |