2015-07-30 3 views
6

Какова наилучшая практика для многократно используемых компонентов jsp в вашем коде? Написание пользовательского тега или использование тега <jsp:include>?Лучшая практика: пользовательский тег jsp или тег include?

Какие обстоятельства будут диктовать использование одного или другого?

Use case: Я пытаюсь реорганизовать часть приложения и хотел бы принять обоснованное решение о том, как разбить html на многократно используемые элементы. В настоящее время я использую специальный тег для создания макета, включая заголовок и нижний колонтитул страницы, а также заголовок и зависимости html. Но я не знаю, как лучше всего включить кусок статического html, который повторно используется в приложении.

+0

Из того, что я слышу, JSP упали в немилости из-за трудностей с изготовлением повторно используемых компонентов. Они не намного проще, чем включает в себя старинный php include или shtml. Некоторые люди говорят о JSF, но мой ограниченный опыт заключается в том, что существует высокая кривая обучения. Не уверен в хорошем архитектурном решении. GSP довольно безболезненны, хотя, к сожалению, они идут вместе с Grails, который не безболезнен. – CStepnitz

+0

К сожалению, сейчас я придерживаюсь этой архитектуры. – Josie

ответ

4

На самом деле существует ряд причин, чтобы пойти с одним или другим с точки зрения организации кодовой базы.

Основной причиной создания библиотеки тегов вместо использования тега jsp:include является предоставление параметров и значений, которые могут повлиять на генерируемую разметку. Предположим, вы хотите передать имя пользователя, которое появится в заголовке вашей страницы, и вы уже потратили драгоценные циклы. Также, если у вас особенно сложная логика (например, что-то большее, чем условные или циклы), библиотека тегов - путь. Никто не хочет беспорядок кода спагетти, сидящего в JSP.

Я бы сказал, что библиотека тегов, которая не принимает никаких параметров, которые всегда производит статический вывод, является функционально эквивалентно использованию jsp:include.

В вашем конкретном случае использования имеется несколько связанная разметка. У вас есть заголовок страницы и нижний колонтитул страницы. Возможно, имеет смысл реализовать это как разные теги в одном классе библиотеки тегов, чтобы эти связанные фрагменты находились в одном месте.

С другой стороны, инкапсуляция HTML внутри библиотеки тегов снижает ремонтопригодность для не-разработчиков. Скажем, у вас есть графический дизайнер по проекту, который не знает lick Java, но хотел бы изменить разметку. Конечно, они могут пройти через класс библиотеки тегов и выяснить, что им нужно изменить; возможно, нет!

Подводя итоги, если вы считаете, что можете передавать параметры, или у вас есть бизнес-логика, это библиотека тегов. Если это просто статический контент и/или вы хотите, чтобы не разработчики помогли редактировать, возможно, с включенным .jsp.

Смежные вопросы