Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

мир без Jsp. thymeleaf 2.0

7,193 views

Published on

  • Sex in your area is here: ❤❤❤ http://bit.ly/2u6xbL5 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2u6xbL5 ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

мир без Jsp. thymeleaf 2.0

  1. 1. Мир без JSP.Thymeleaf 2.0
  2. 2. Что плохого в JSP?• 2002 год (ajax ещё не назывался ajax`ом)• Скриплеты• Невалидный фрагментированный (X)HTML• «Многобукаф»• ENVIRONMENT!• Static HTML -> JSP -> HTML
  3. 3. Идеальный серверный шаблон• Минимум усилий• Удовольствие от разработки• Совместимость с mainstream технологиями• Скорость разработки• Скорость генерации страницы• Фишечки-плюшки
  4. 4. Встречаем Thymeleaf!
  5. 5. Pros• Низкий порог входа• Здоровый Open Source + Коммьюнити• Подходит для насыщенных HTML-писем• Обрабатывает неполные документы• Мощный Expression Language
  6. 6. Pros• Интеграция Spring,Tiles2, SiteMesh, Jawr, Play 1.2 …• SAX parser + Tailored DOM + Caching• Расширяемость (кастомные теги/аттрибуты/EL)• Готов к продакшн Polish Ministry of Justice Broadleafcommerce Sahibinden
  7. 7. Cons• Непривычный синтаксис• Медленнее, чем FreeMarker и Velocity• Нет taglibs (но есть «диалекты»)• Нет автодополнения в IDE• Не лучшее решение для сложных страниц (1000+ тегов/итераций)
  8. 8. - 25 параллельных потоков- 50000 запросов на страницу- Oracle JVM 1.7.0_01- Apache Tomcat 7.0.23 - 2 Gb RAM- Linux 64 bits- Spring 3.1.0- Apache JMeter 2.6
  9. 9. Киллер фича?Естественные шаблоны!
  10. 10. Естественные шаблоны• Валидны как и результирующий документ• Синтаксис движка не ломает структуры• Шаблон одновременно и прототип• Статические = просматриваются в браузере без вебсервера!
  11. 11. JSP на «вебсервере»
  12. 12. Thymeleaf на «вебсервере»
  13. 13. JSP в браузере
  14. 14. JSP Sucks
  15. 15. Thymeleaf в браузере
  16. 16. Thymeleaf FTW!
  17. 17. Резюмируем• Быстро и удобно• Подходит для вёрстки Email• Идеально для команд, где есть прототипы• Идеально для соло-разработки шаблонов• Не silver bullet• Дружит плотно со Spring
  18. 18. Практика
  19. 19. Инклуды• th:include• th:remove• th:replaceby• th:fragment• Вычисление выражений и переменных после вставки фрагмента
  20. 20. th:include=”fragment_file ::fragment_name|[DOM_selector]
  21. 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. 22. Статические инклуды Thymol.jsОграниченная поддержка инклудов и условных выражений
  23. 23. Стандартный диалект org.thymeleaf.messageresolver.IMessageResolver
  24. 24. Thymeleaf + Spring
  25. 25. Thymeleaf + Spring• beans, fields объекты в SpEl• Интеграция с WebFlow• Интеграция с Spring Security• Form binding (th:object)
  26. 26. Расширяемость• Dialects = JSP Taglibs + i18n org.thymeleaf.dialect.IDialect• Processors = tags/attributes org.thymeleaf.processor.Iprocessor org.thymeleaf.processor.AbstractProcessor org.thymeleaf.processor.attr.AbstractAttrProcessor org.thymeleaf.processor.element.AbstractElementProcessor
  27. 27. Pitfalls• Используйте апперкейс DOCTYPE• Эксепшн с упоминанием Lenient? => Неправильный атрибут/неймспейс• Эксепшн без номера строки? => Проблема с конфигурацией
  28. 28. ВсёMind Map Яbit.ly/jtt_thyme_mmap mailto://alexey.migutsky@gmail.com skype://aliaksei_mihutski skype://mr_mig.by @mr_mig_by

×