Это может произойти, если ваша среда не поддерживает 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 решения:
value="#{userbean.all}"
web.xml
Servlet 3.0. Вы также должны быть абсолютно уверены, что ваш файл /WEB-INF/lib
вашего веб-сервера не содержит каких-либо библиотек, специфичных для сервлета, таких как el-api.jar
и друзей (см. Также этот связанный вопрос ).
Обратите внимание, что это не проблема JSF. Вы получили исключение из пакета javax.el
/ org.apache.el
, а не из пакета javax.faces
/ com.sun.faces
. Это означает, что это проблема EL. В основном это говорит о неправильности вашего синтаксиса EL. Он столкнулся с (
, где этого не ожидал. Ожидаемые символы / операторы четко перечислены ниже.