2012-01-23 6 views
7

Я пытаюсь запустить этот старый проект JSP, работающий в Tomcat 7, JRE7, но получая эту ошибку на большинстве страниц проекта. Может ли кто-нибудь пролить свет, что происходит?JSTL EL недопустимое выражение (и): javax.el.ELException: in Tomcat 7

код выглядит следующим образом:

<c:set var="structClass"> 
    <c:if test="${empty param.class}">template</c:if> 
    <c:if test="${not empty param.class}">${param.class}</c:if> 
</c:set> 

ошибка выглядит следующим образом:

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: /WEB-INF/templates/template.jsp (line: 77, column: 4) "${empty param.class}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${empty param.class}] org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)

ответ

11

это из-за 'класса' ключевого слова в выражении попробуйте использовать

<c:if test="${empty param['class']}">template</c:if> 
<c:if test="${not empty param['class']}">${param['class']}</c:if> 

см. http://geekomatic.ch/2011/03/22/1300804080000.html

+0

теперь ошибка изменяется на => org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NoSuchFieldError: deferredExpression –

+0

http://geekomatic.ch/2011/ 03/22/1300804080000.html Я добавил -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK = true, и это решило проблему .... спасибо за ссылку !!! –

+1

$ {something.new} также говорит ту же ошибку из-за ключевого слова 'new'. Благодарю. –

Смежные вопросы