Однако я получаю ошибку только в EL, когда пытаюсь #{bean.deleteQuestion(question)}
К сожалению, вы не поделились точными сведениями об «ошибке EL» и кодом вашей попытки (в будущих вопросах вам действительно следует это сделать).
Я предполагаю, что вы пытались
<h:commandLink value="Delete" action="#{bean.deleteQuestion(question)}" />
и что на самом деле ваша IDE, которая неправильно отображает предупреждение / ошибку, и что вы все равно не пытались ее запустить. Основываясь на истории ваших вопросов, вы используете Glassfish 3, для которого передача аргументов метода по EL должна работать идеально. Если это действительно ваша IDE, которая дернулась на этой линии, просто запустите ее в любом случае. Если это действительно работает нормально, перенастройте настройки проверки вашей IDE или установите лучший плагин JSF / EL.
Или, если вы действительно получили ELException
во время выполнения, то это может означать только то, что ваш web.xml
объявлен в соответствии с Servlet 2.5 вместо Servlet 3.0. Передача аргументов метода в EL поддерживается только начиная с EL 2.2, который является частью JSP 2.2 / Servlet 3.0.
Обратите внимание, что ссылка на команду должна иметь <h:form>
родителя. Убедитесь, что вы один; Вы можете поместить это вокруг <h:commandLink>
или <p:dataTable>
. Также убедитесь, что #{bean}
правильно сохраняет questions
для запроса отправки формы. Проще всего поместить его в область видимости.