小编典典

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

jsp

我有两个问题。第一个是我正在使用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)。


阅读 329

收藏
2020-06-08

共1个答案

小编典典

您的web.xml可能引用Servlet 2.3规范,默认情况下该规范isELIgnored设置为true。如果您改为参考Servlet
2.4规范,isELIgnoredfalse默认设置为。

如果要引用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">
2020-06-08