Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

мир без Jsp. thymeleaf 2.0

7.247 Aufrufe

Veröffentlicht am

  • Sex in your area is here: ❤❤❤ http://bit.ly/2u6xbL5 ❤❤❤
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2u6xbL5 ♥♥♥
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

мир без 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

×