Я <3 файла тегов, но тот ведущий разработчик JSTL курит крэк, если они действительно так сказали. Вы НЕ МОЖЕТЕ переписать все теги библиотеки тегов как теги файлов тегов по одной очень важной причине: файлы тегов не могут: </p>
return EVAL_BODY_INCLUDE;
Другими словами, файлы тегов имеют только три параметра для содержимого тела:
пусто: нет внутреннего содержимого, т.е.
без сценария: нет внутреннего содержимого JSP, т.е.
Привет, мир
в порядке, но не
<% = helloWorld.toString ()%>
tagdependent: вы можете иметь внутреннее содержимое JSP, но оно не будет обрабатываться как таковое; вместо этого вы должны разобрать / обработать его, как считаете нужным
Но со старыми тегами библиотеки тегов стиля вы можете иметь:
<Тело-контент> JSP </ тело-контент>
(в файле TLD), а затем "вернуть EVAL_BODY_INCLUDE;" от вашего "doStartTag". Если вы сделаете это, все ваши JSP-директивы будут проанализированы, как если бы они были обычной частью вашей страницы, и ваш тег просто обернет их соответствующим содержимым.
Лично мое эмпирическое правило таково: используйте файлы тегов, когда можете, т.е. всякий раз, когда вам не нужны JSP-директивы для работы внутри тега, потому что они в миллион раз чище, с ними проще работать непрограммисту, не требуйте tld (хорошо, если вы храните их в отдельном пространстве имен от ваши теги библиотеки тегов).
Но если вы хотите, чтобы содержимое JSP содержалось внутри вашего тега, вы можете использовать только теги библиотеки тегов. Будем надеяться, что когда-нибудь люди JSP выпустят способ обработки директив JSP внутри тега файла тега, и тогда мы действительно сможем отказаться от старых тегов на основе классов, но до тех пор, пожалуйста, не пытайтесь делать все теги с файлами тегов. , поскольку вы быстро будете сокращены до создания пользовательских тегов для каждой последней части логики (поскольку это единственный способ сделать логику без использования JSP-директив).