Как получить доступ к переменной, объявленной в другой включенной JSP (тот же родительский) из включенной JSP - PullRequest
1 голос
/ 03 мая 2011

У меня есть родительский 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>

И я хочу получить доступ к w_myObject в c.jsp

1 Ответ

1 голос
/ 03 мая 2011

Это все, что связано с областями применения.Если ваш объект находится в области запроса, то, конечно, он будет иметь доступ.Или, если он находится в области действия сеанса, он будет иметь доступ.Однако, если он находится в области видимости PageContext, я полагаю, что он будет потерян, так как каждый jsp include создает свою собственную область видимости.

Итак, я пытаюсь сказать, что поместил объект в область запроса, и он будет виденпо всем JSP.

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

**c.jsp**
w_myObject = (TypeOfMyObject)request.getAttribute("myObjectKey");
...