JSP EL $ {stuff}语法不起作用

时间:2011-09-10 21:29:18

标签: java jsp el

我有两个问题。第一个是我使用JSP而我无法解决。第二个是我有一个奇怪的行为。

当我把它放在我的servlet的doGet()方法

req.setAttribute("test", "SARASA");
req.getRequestDispatcher("WEB-INF/main.jsp").forward(req, resp);

这在“WEB-INF / main.jsp”中:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%= request.getAttribute("test") %>
<c:out value="${test}"/>

输出结果为:

SARASA ${test}

我不知道我做错了什么......这可能是什么原因?


更新:我解决了添加

<%@ page isELIgnored="false" %>

在我需要它的每个JSP中。奇怪的是,我在另一个使用一些非常相似的web.xml和pom.xml文件的项目中并不需要它(我正在使用maven)。

1 个答案:

答案 0 :(得分:10)

您的web.xml可能引用了Servlet 2.3规范,默认情况下isELIgnored设置为true。如果您引用Servlet 2.4规范,默认情况下isELIgnored将设置为false

如果您想引用Servlet 2.4规范,您的web.xml标题应如下所示:

<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">