Управляемый bean-компонент JSF не отображает [дубликат]

3
задан BalusC 31 January 2016 в 13:44
поделиться

1 ответ

Это может произойти, если ваша среда не поддерживает EL 2.2. Вызов прямых методов с круглыми скобками / аргументами, подобными этому

value="#{userbean.getAll()}" 

поддерживается только с EL 2.2, который идет рука об руку с Servlet 3.0. Если вы получаете это исключение, это может означать, что вы не развертываете контейнер, совместимый с Servlet 3.0, или что ваш файл web.xml вашего веб-сервера не объявлен совместимым с Servlet 3.0 или что ваш файл /WEB-INF/lib вашего webapp произвольно загруженные файлы JAR с сервлетконтейнером, происходящие из совершенно другой версии servletcontainer make / version, которая не соответствует EL 2.2.

В основном существуют 2 решения:

  1. Использовать EL 2.1 совместимый синтаксис, это работает на совместимых с Servlet 2.5 контейнерах:
    value="#{userbean.all}" 
    
  2. Переход на совместимый с Servlet 3.0 контейнер (Tomcat 7, Glassfish 3, JBoss AS 6 и т. д.) или исправить ваш web.xml Servlet 3.0.

Вы также должны быть абсолютно уверены, что ваш файл /WEB-INF/lib вашего веб-сервера не содержит каких-либо библиотек, специфичных для сервлета, таких как el-api.jar и друзей (см. Также этот связанный вопрос ).

Обратите внимание, что это не проблема JSF. Вы получили исключение из пакета javax.el / org.apache.el, а не из пакета javax.faces / com.sun.faces. Это означает, что это проблема EL. В основном это говорит о неправильности вашего синтаксиса EL. Он столкнулся с (, где этого не ожидал. Ожидаемые символы / операторы четко перечислены ниже.

См. Также:

12
ответ дан Community 27 August 2018 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: