JSP - jsp:include 页面内的所有范围都是空的
JSP - All scopes are empty inside the jsp:include page
我想在 requestScope
中放置一个变量,以便我可以在其他页面中使用它。不幸的是,requestScope
在另一页中完全是空的。事实上,当我在两个页面中打印 #{requestScope}
时,它们没有相同的内存地址!
mainPage.jsp
<c:set var="foo" value="${myForm.myJavaObject}" scope="request" />
<c:forEach var="scope" items="${requestScope}">
${scope.key} // PRINTS EVERY VARIABLE IN THE REQUEST SCOPE, INCLUDING foo
</c:forEach>
<jsp:include page="./includedPage.jsp"/>
includedPage.jsp
<c:forEach var="scope" items="${requestScope}">
${scope.key} // PRINTS NOTHING
</c:forEach>
如果尝试不同的范围(会话、应用程序等),结果相同。我不明白。网上到处都是这种方法,为什么还是不行呢?第一次用
如果我包含 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
,它会起作用。我不明白为什么,因为它已经包含在 mainPage.jsp
中并且因为 <jsp:include>
是动态的。
我想在 requestScope
中放置一个变量,以便我可以在其他页面中使用它。不幸的是,requestScope
在另一页中完全是空的。事实上,当我在两个页面中打印 #{requestScope}
时,它们没有相同的内存地址!
mainPage.jsp
<c:set var="foo" value="${myForm.myJavaObject}" scope="request" />
<c:forEach var="scope" items="${requestScope}">
${scope.key} // PRINTS EVERY VARIABLE IN THE REQUEST SCOPE, INCLUDING foo
</c:forEach>
<jsp:include page="./includedPage.jsp"/>
includedPage.jsp
<c:forEach var="scope" items="${requestScope}">
${scope.key} // PRINTS NOTHING
</c:forEach>
如果尝试不同的范围(会话、应用程序等),结果相同。我不明白。网上到处都是这种方法,为什么还是不行呢?第一次用
如果我包含 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
,它会起作用。我不明白为什么,因为它已经包含在 mainPage.jsp
中并且因为 <jsp:include>
是动态的。