Библиотека пользовательских тегов JSP против файлов тегов JSP2 - PullRequest
7 голосов
/ 23 октября 2008

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

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

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

Ответы [ 2 ]

8 голосов
/ 13 ноября 2008

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

return EVAL_BODY_INCLUDE;

Другими словами, файлы тегов имеют только три параметра для содержимого тела:

пусто: нет внутреннего содержимого, т.е.

без сценария: нет внутреннего содержимого JSP, т.е.

Привет, мир

в порядке, но не

<% = helloWorld.toString ()%>

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

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

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

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

6 голосов
/ 28 октября 2008

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

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

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

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

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

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

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

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

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

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

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

Идентифицируется суффиксом .tag или .tagx .

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

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