в чем принципиальная разница между jsp taglib и jsp страницей? - PullRequest
8 голосов
/ 29 сентября 2008

У меня есть несколько общих элементов (компонентов), которые будут генерировать HTML. кажется, что я могу создать taglib или просто поместить эту логику на страницу jsp и включить jsp.

какая разница? позитивы против негативов?

Ответы [ 4 ]

6 голосов
/ 29 сентября 2008

Taglibs позволяют вам определять (набирать) параметры, которые вы можете задокументировать. Также теги-метки могут знать свое местоположение в дереве объектов, поэтому они действуют по-разному в другом контексте; или вызывать определенный шаблон снова и снова для создания итераторов или конструкций операторов.

Знаете ли вы, что тэги не обязательно должны быть написаны на Java? Существует также концепция, называемая tagfiles, которая позволяет вам написать вашу taglib в JSP; часто больше подходит для плоских компонентов ... довольно близко к включению.

4 голосов
/ 29 сентября 2008

Когда вы используете taglib, контейнер обычно:

  • Пишет и вызывает вспомогательный метод из _jspService
  • Внутри вспомогательного метода создается экземпляр класса тега и вызываются стандартные методы (setParent (), doStartTag (), doEndTag () и т. Д.)

Это сохраняет весь код в одном и том же ресурсе (запрос не передается другому компоненту) и, следовательно, позволяет встроить циклическое поведение и получить доступ к другим компонентам на текущей странице.

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

1 голос
/ 29 сентября 2008

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

Еще одна невероятно полезная и удивительно часто пропускаемая функция тегов JSP - это тип атрибута JspFragment. Это позволяет передавать фрагмент кода JSP в качестве параметра в тег, который будет вызываться, возможно, несколько раз.

Включает отсутствие этих мощных функций параметризации.

0 голосов
/ 29 сентября 2008
Теги

облегчают определение и обработку параметров, но их разработка требует значительных затрат. Включения проще, но менее мощные. Многое зависит от вашего стиля.

По моему опыту, люди обычно просто используют include, потому что они не хотят тратить время на то, чтобы научиться создавать закладки. Приводит к справедливому беспорядку. Пока ваша команда мала и ваши команды не слишком сложны, это не так уж плохо. Но это запах кода.

...