2

我有一个父 JSP,其代码看起来像

<jsp:include page='a.jsp' flush='true'/>
<jsp:include page='b.jsp' flush='true'/>
<jsp:include page='c.jsp' flush='true'/>

a.jsp有一个我需要访问的 Java 对象c.jsp

有没有办法在不将任何代码从 a.jsp 移动到父 jsp 的情况下做到这一点?

这是 a.jsp 的样子:

<%@ page import="com.xxx.yyy.myClass" %>
<%
    // Some processing here
%>
<table width="100%" cellspacing="0" class="scrollableTable">
    <thead>
        <tr>
        <%
            // Some processing here
            w_myObject = myAPI.getmyObject(param1, param2);
            // Some processing here
        %>
        </tr>
        <!-- Display contents of w_myObject in subsequent rows of this table, here -->
    </thead>
</table>

我想在 c.jsp 中访问 w_myObject

4

1 回答 1

2

这都与范围有关。如果您的对象在请求范围内,那么它当然可以访问。或者,如果它在 Session 范围内,它将具有访问权限。但是,如果它在 PageContext 范围内,我相信它会丢失,因为每个 jsp 包含都会创建自己的范围。

所以我想说的是把对象放在请求范围内,它将在所有 JSP 中可见。

**a.jsp**
request.setAttribute("myObjectKey", w_myObject);

**c.jsp**
w_myObject = (TypeOfMyObject)request.getAttribute("myObjectKey");
于 2011-05-03T15:53:50.253 回答