| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Velocity vs. XSLT+XML |
| Автор: Wowa 6.2.2006, 03:54 |
| Прочитал статью: http://forum.vingrad.ru/index.php?showtopic=44988&hl=pdf&st=15 и возник вопрос, чем собственно Velocity лучше связки XSLT+XML ? |
| Автор: tux 6.2.2006, 09:54 |
| Напишу что я об этом думаю, возможно это спорное мнение, но для того и форум чтобы спорить. По-моему, ничем не лучше по той простой причине что это разные вещи. В чем достоинства XSLT (не в сравнении с Velocity, а вообще)? В том, что мы можем взять некий XML, описывающий какой-то предмет, образ, да что угодно, применить к нему заранее подготовленный XSLT и получить на выходе документ в любом формате - простой текст, другой XML-документ, HTML-страницу, PDF и т.п. Причем такая гибкость дает возможность за счет замены XSLT-таблицы получить документ совершенно другого формата и другого оформления. Что нам дает Velocity? Возможность очень простой динамической генерации любого текста (насколько я знаю Velocity не умеет работать с двоичными данными, если кто-то знает обратное, меня поправит). Нужно всего три шага - инициализировать движок, создать контекст (набор переменных, которые будут использоваться при генерации текста) и, собственно, сгенерировать что нужно из заданного контекста. В результате получим HTML, XML или что-то еще текстовое. Вообще говоря, ни то ни другое не ограничено применением только в веб. Вот еще в чем загвоздка - в чистом виде XSLT для веб использовать сложно. Нам ведь нужно где-то взять исходный XML-документ. Можно, конечно, взять и сгенерить DOM-модель на основе каких-то динамических данных приложения, на которую наложить XSLT и получить результат. Однако, это ведь слишком сложно и практически нереально для большого приложения. А вот здесь и может пригодиться способность Velocity генерировать текст используя динамическую информацию. Как вам такой вариант:
С другой стороны, если нужно только веб-приложение, которому не нужно ничего кроме HTML, то XSLT мне кажется лишним. Исключение если уже существующее приложение само генерит XML-документы. В этом случае проще использовать Velocity в чистом виде, а о его достоинствах уже много говорилось. Ну и в конце резюме:
|
| Автор: 3,14 8.2.2006, 11:21 |
| С расширением обычного приложения, работающего только с HTML, до поддержки XML особых проблемм нет, если приложение правильно спроектированно. Просто нужно помещать обьеты для передачи в JSP в SessionBean-ы, для того чтоб расширить приложение до поддержки XML нам только понадобиться написать класс преобразующий набор обьектов из SessionBean в XML. Причём как правило достаточно использовать для этой цели java.beans.XMLEncoder. |