в чем принципиальная разница между jsp taglib и включением jsp-страницы?

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

  •  02-07-2019
  •  | 
  •  

Вопрос

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

в чем разница?плюсы против минусов?

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

Решение

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top