Интеграция JSTL с Facelets - PullRequest
4 голосов
/ 15 апреля 2010

Я рассматриваю возможность использования Facelets и JSTL в одном веб-проекте.

Есть ли проблемы с их интеграцией?

Ответы [ 2 ]

10 голосов
/ 15 апреля 2010

Facelets имеет клонирован ограниченный набор «старых добрых» тегов JSTL и включен в библиотеку Facelets. Все они описаны здесь . Другими словами: не все теги / функции JSTL поддерживаются в Facelets.

Если есть какой-либо оригинальный тег JSTL, который вы хотели бы использовать, но он не доступен для Facelets, то вы отправитесь в другое место для решения. Задания, которые могут быть выполнены с помощью тегов JSTL sql и xml , не относятся к представлению, а скорее к модели / бизнес-логике. Taglib JSTL fmt уже покрыт тегами <f:loadBundle> и <f:formatXXX> JSF. TagLib JSTL functions может быть так же хорошо сделан с пользовательскими функциями EL. Я опубликовал пример в этом ответе .

Проблема с JSF и исходной библиотекой JSTL заключается в том, что они не работают синхронно, как вы ожидаете от кодирования. Более того, JSTL сначала запускает страницу сверху вниз, а затем передает сгенерированный вывод в JSF для дальнейшей обработки. Это может привести к неожиданным результатам при использовании, например, <c:forEach>.

Смотри также:

3 голосов
/ 15 апреля 2010

Как описано в документе Facelets здесь , JSTL может быть интегрирован в приложение Facelets. Однако следует избегать некоторых компонентов библиотеки JSTL, если это возможно, например, <c:set>.

Обратите внимание, что Facelets также предоставляют некоторые замены для тега JSTL. Таким образом, вы можете заменить <c:forEach> на <ui:repeat> тег (подробнее здесь об этих двух компонентах).

...