URI ядра JSTL недействителен. В соответствии с JSTL TLD оно должно быть (обратите внимание на дополнительные /jsp
):
xmlns:c="http://java.sun.com/jsp/jstl/core"
Тем не менее, смешивание JSF с JSTL никогда не было хорошей идеей. Это не всегда даст результаты, как вы ожидаете, потому что они не работают синхронно, как вы ожидаете от кодирования. Более того, JSP / JSTL сначала работает сверху вниз, а затем передает полученный результат JSF для дальнейшей обработки сверху вниз. Это может привести к сбою некоторых конкретных конструкций. Вместо этого лучше использовать чистые компоненты / атрибуты JSF.
Вместо c:forEach
лучше использовать a4j:repeat
Seam или Facelets 'ui:repeat
, а вместо c:if
использовать атрибут rendered
компонента JSF, который должен быть переключен для отображения / скрытия. Вместо всего этого JSTL c:set
напишите соответствующую логику кода в конструкторе управляемого компонента или методе действия или получателе.
Функции JSTL (fn
) taglib, тем не менее, по-прежнему очень ценны в JSF. Вы можете продолжать использовать его.