Библиотека пользовательских тегов JSP и файлы тегов JSP2

Может ли кто-нибудь объяснить идею, лежащую в основе пользовательских библиотек тегов JSP и файлов тегов JSP 2?

Это просто разные способы сделать одно и то же?

Как они сравниваются? Каковы их плюсы и минусы, а что лучше?


person Vinayak Bevinakatti    schedule 23.10.2008    source источник


Ответы (2)


Я <3 файла тегов, но этот ведущий разработчик JSTL курит, если они действительно так сказали. Вы НЕ МОЖЕТЕ переписать все теги библиотеки тегов как теги файлов тегов по одной очень важной причине: файлы тегов не могут:

вернуть EVAL_BODY_INCLUDE;

Другими словами, у файлов тегов есть только три варианта их основного содержимого:

пусто: без внутреннего содержания, т. е. ‹SomeTag /›

без скриптов: отсутствие внутреннего содержимого JSP, т. е. ‹SomeTag› ‹p› hello world ‹/p› ‹/someTag› в порядке, но не ‹someTag› ‹p› ‹% = helloWorld.toString ()%› ‹/p› ‹/someTag›

tagdependent: у вас может быть внутреннее содержимое JSP, но оно не будет обрабатываться как таковое; вместо этого вам нужно проанализировать / отобразить его, как вы считаете нужным

Но с тегами библиотеки тегов старого стиля вы можете иметь: ‹body-content› JSP ‹/body-content› (в tld-файле), а затем «вернуть EVAL_BODY_INCLUDE;» из вашего "doStartTag". Если вы сделаете это, все ваши JSP-директивы будут проанализированы так же, как если бы они были нормальной частью вашей страницы, а ваш тег просто обернул бы их соответствующим содержимым.

Лично мое практическое правило: используйте файлы тегов всякий раз, когда можете, т.е. всякий раз, когда вам не нужны директивы JSP для работы внутри тега, потому что они в миллион раз чище, с ними легче работать непрограммисту, не требуется tld (ну, если вы храните их в отдельном пространстве имен от теги вашей библиотеки тегов).

Но если вы хотите, чтобы содержимое JSP было внутри вашего тега, ваш единственный вариант - это теги библиотеки тегов. Надеюсь, что когда-нибудь разработчики JSP выпустят способ обработки директив JSP внутри тега файла тегов, и тогда мы действительно сможем отказаться от старых тегов на основе классов, но до тех пор, пожалуйста, не пытайтесь делать все теги с файлами тегов. , так как вы быстро будете вынуждены создавать собственные теги для каждой последней части логики (поскольку это единственный способ реализовать логику без использования директив JSP).

person machineghost    schedule 13.11.2008

Проблемы при разработке пользовательских тегов

Традиционные настраиваемые теги требуют навыков программирования на Java.

Все, кроме простейших пользовательских тегов, написать непросто.

Цель JSP, в отличие от сервлетов, - использовать язык разметки для управления макетом со встроенным динамическим содержимым.

Необходимость писать сложный код Java в настраиваемых тегах, ориентированных на язык разметки, идет вспять.

Мы можем захотеть использовать язык выражений JSP или другие настраиваемые теги при реализации нового настраиваемого тега.

Решение Файлы тегов JSP 2.0

  • Файлы тегов - одна из важных новых концепций, представленных в JSP 2.0.
  • Файлы тегов упрощают и ускоряют разработку пользовательских тегов.
  • Файлы тегов разрабатываются с использованием обычного синтаксиса JSP, включая элементы сценариев, и используются так же, как любые другие настраиваемые теги.
  • Каждый настраиваемый тег представляет собой отдельный файл тегов.

Чем отличаются файлы тегов?

Написано с использованием синтаксиса JSP.

  • Не все директивы JSP разрешены в файле тегов.
  • Поддерживается новыми директивами, действиями и неявными объектами файла тегов.

Обозначается суффиксом .tag или .tagx.

Предназначен для облегчения разработки разработчиками пользовательских тегов без потери функциональности.

  • Один из ведущих разработчиков JSTL прокомментировал, что, если у нее будет время, она перепишет весь JSTL, используя файлы тегов.
person Vinayak Bevinakatti    schedule 28.10.2008