2. Что плохого в JSP?
• 2002 год (ajax ещё не назывался ajax`ом)
• Скриплеты
• Невалидный фрагментированный (X)HTML
• «Многобукаф»
• ENVIRONMENT!
• Static HTML -> JSP -> HTML
3. Идеальный серверный шаблон
• Минимум усилий
• Удовольствие от разработки
• Совместимость с mainstream технологиями
• Скорость разработки
• Скорость генерации страницы
• Фишечки-плюшки
5. Pros
• Низкий порог входа
• Здоровый Open Source + Коммьюнити
• Подходит для насыщенных HTML-писем
• Обрабатывает неполные документы
• Мощный Expression Language
6. Pros
• Интеграция
Spring,Tiles2, SiteMesh, Jawr, Play 1.2 …
• SAX parser + Tailored DOM + Caching
• Расширяемость (кастомные теги/аттрибуты/EL)
• Готов к продакшн
Polish Ministry of Justice
Broadleafcommerce
Sahibinden
7. Cons
• Непривычный синтаксис
• Медленнее, чем FreeMarker и Velocity
• Нет taglibs (но есть «диалекты»)
• Нет автодополнения в IDE
• Не лучшее решение для сложных страниц
(1000+ тегов/итераций)
10. Естественные шаблоны
• Валидны как и результирующий документ
• Синтаксис движка не ломает структуры
• Шаблон одновременно и прототип
• Статические = просматриваются в браузере
без вебсервера!
17. Резюмируем
• Быстро и удобно
• Подходит для вёрстки Email
• Идеально для команд, где есть прототипы
• Идеально для соло-разработки шаблонов
• Не silver bullet
• Дружит плотно со Spring
21. DOMSelector
Ограниченный Xpath
• /x - прямой потомок с именем x.
• //x - любой потомок с именем х.
• x[@z="v"] - тэг х с аттрибутом z, равным v.
• x[@z1="v1" and @z2="v2"]
• x[i] - i-ый тэг x.
• x[@z="v"][i]
22. Статические инклуды
Thymol.js
Ограниченная поддержка инклудов и
условных выражений
27. Pitfalls
• Используйте апперкейс DOCTYPE
• Эксепшн с упоминанием Lenient?
=> Неправильный атрибут/неймспейс
• Эксепшн без номера строки?
=> Проблема с конфигурацией
28. Всё
Mind Map Я
bit.ly/jtt_thyme_mmap mailto://alexey.migutsky@gmail.com
skype://aliaksei_mihutski
skype://mr_mig.by
@mr_mig_by