Миграция с JSF1.2 на JSF2.0: что делать с JSTL?

мы собираемся перенести наш проект JSF 1.2 на JSF 2. Мы уже используем facelets (а не JSP) в качестве нашей технологии презентации.

Мы используем много JSTL → "xmlns:c="http://java.sun.com/jstl/core"

Мы используем множество операторов <c:if>. Я знаю, что JSF2 приносит атрибут rendered, который также должен оценивать булевы выражения.

Должен ли я переписывать материал новому атрибуту rendered или нормально продолжать использовать JSTL в JSF2?

Ответ 1

JSTL работает аналогично в JSF2, поскольку он работал в JSF1. Атрибут rendered не является специфичным для JSF2, он все время работал в JSF. Если те JSTL-теги всегда работали в вашем приложении JSF 1.2, вам не обязательно переносить их для JSF2. Вам нужно только изменить url taglib, чтобы включить путь /jsp (!!).

xmlns:c="http://java.sun.com/jsp/jstl/core"

Однако, когда это возможно, использование атрибута rendered определенно более рекомендуется, чем полагаться на теги JSTL. Конечно, если вы планируете привязывать атрибуты тега JSTL к @ViewScoped bean. См. Также Связь в JSF 2.0 - @ViewScoped не работает в обработчиках тегов.