JSP中的EL停止了评估

时间:2009-02-02 17:31:35

标签: java jsp maven-2 jetty el

在JSP页面(index.jsp)中:

${requestContext.requestURL} is the URL

只显示表达式本身。它过去被评估为“http://.../somerset/

我在Eclipse中使用maven-archetype-webapp原型创建了Maven项目。 Jetty版本是jetty-6.1.14。

我的web.xml很简单:

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <servlet>
      <servlet-name>SomersetServlet</servlet-name>
      <display-name>SomersetServlet</display-name>
      <description></description>
      <servlet-class>com.foo.somerset.SomersetServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>SomersetServlet</servlet-name>
      <url-pattern>/som.do</url-pattern>
    </servlet-mapping>
</web-app>

3 个答案:

答案 0 :(得分:8)

出于某些可能的原因,请参阅Javascript String.replace(/\$/,str) works weirdly in jsp file

您的web.xml应包含对web-app_2_4.xsd架构的引用,例如

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version="2.4">

这启用了servlet 2.4和jsp 2.0处理,包括EL。

Btw requestContext无效的隐式对象。

答案 1 :(得分:1)

错误匹配的引号可能会导致此行为,表达式只会被视为字符串。如果是这种情况,您的IDE通常会以不同的颜色突出显示它。

答案 2 :(得分:0)

确保您拥有指令,以及您使用的其他库

<jsp:root .....

有关此处定义的更多信息

http://java.sun.com/products/jsp/tags/12/syntaxref123.html