JSP中的EL停止了评估

yog*_*man 2 java jsp maven-2 jetty el

在JSP页面(index.jsp)中:

${requestContext.requestURL} is the URL
Run Code Online (Sandbox Code Playgroud)

只是显示表达本身.它过去被评估为" 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>
Run Code Online (Sandbox Code Playgroud)

Pet*_*aný 8

请参阅Javascript String.replace(/\$ /,str)由于某些可能的原因在jsp文件中奇怪地工作.

您的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">
Run Code Online (Sandbox Code Playgroud)

这使得servlet 2.4和jsp 2.0处理成为可能,其中包括EL.

顺便说一句requestContext是无效的隐式对象.