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