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

StackOverflow https://stackoverflow.com/questions/228607

  •  04-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

вернуть EVAL_BODY_INCLUDE;

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

empty: нет внутреннего содержимого, т.е. л &; someTag / GT &;

без сценария: нет внутреннего содержимого JSP, т.е. < someTag > < p > привет мир < / p > < / someTag > все в порядке, но не < someTag > < p > <% = helloWorld.toString ()% > < / р GT &; л &; / someTag GT &;

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Один из ведущих разработчиков JSTL отметил, что если бы у нее было время, она бы переписала весь JSTL, используя файлы тегов.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top