我有两个问题。第一个是我正在使用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)。
您的web.xml可能引用Servlet 2.3规范,默认情况下该规范isELIgnored设置为true。如果您改为参考Servlet 2.4规范,isELIgnored则false默认设置为。
isELIgnored
true
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">