Taglibs против Javaclass:или как наилучшим образом совместить и то, и другое

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

  •  19-09-2019
  •  | 
  •  

Вопрос

В настоящее время я пишу шаблон для OpenCms, CMS на основе Java с очень хорошей поддержкой библиотеки тегов и мощным API.

В любом случае, когда я смотрю на учебные пособия или исходный код, примерно 50-50 случаев, когда библиотеки тегов или Java-классы используются для генерации (html)-вывода.

Я стараюсь поддерживать чистоту своих JSP, то есть не использовать много скриптлетного кода (вместо этого использую JSTL и т. д.).В какой-то момент мне может понадобиться больше контроля над кодом, тогда появятся Java-классы, и здесь я не знаю, как далеко мне следует зайти (лично мне не нравится идея генерации HTML в классе).

Вот некоторые плюсы и минусы, которые у меня есть:

  1. Благодаря библиотекам тегов мне не нужно каждый раз перезапускать контейнер сервлетов.Я просто вношу изменения и вижу результат
  2. JSP taglib легче поддерживать, особенно для веб-дизайнеров, из-за «того же» синтаксиса.
  3. Javaclass обеспечивает полную/дополнительную поддержку IDE (проверка типа/синтаксиса).
  4. При более сложных требованиях код Javaclass становится чище (по сравнению с помещением переменных в контекст страницы в JSP).
  5. EL (язык выражений) добавляет больше возможностей JSP/taglib, но это снова другой синтаксис, и его нужно изучить.

Есть ли какие-либо рекомендации о том, как подойти к этому?Поскольку есть другие коллеги, которым, вероятно, придется поддерживать это в будущем, я ищу чистое/поддерживаемое решение. Вероятно, вы все знаете ситуацию, когда вы смотрели на чей-то код и думали: «О чем, черт возьми, он/она думал» ;)

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

Решение

Раньше я придерживался этого довольно просто.

Используйте библиотеки тегов, когда целью является презентация. Допустим, у вас есть блок кода отображения, который вы собираетесь повторно использовать на нескольких страницах, в случае StackOverflow, скажем, код стрелки.Поскольку это должно просто отображать данные, ему не нужен код Java, и я бы использовал библиотеку тегов.

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

Не используйте ни один из них для доступа к базам данных.

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