2016-12-20 65 views
0

我有一個具有使用自定義JSTL標記創建的小部件的父JSP。 爲了改善頁面加載,我使用Jquery將這些小部件動態加載到Iframe中。 iframes的來源是單獨的JSP文件中的小部件代碼。如何訪問在iframe中加載的子jsp中父JSP的頁面環境

所以我創建了一個JSP爲每個插件

$(function() { 
      var widgetSrc = ["frame1.jsp", "frame2.jsp", "frame3.jsp", "frame4.jsp", "frame5.jsp", "frame6.jsp","frame7.jsp"]; 

     $.each(widgetSrc, function (index, element) {    
      var res = element.split(".");    
      var container = $("#"+res[0]);    
      appendNew(container, element);     
     }) 
    }) 

現在我需要訪問HttpRequestrequest對象來獲取一些參數的窗口小部件之一。

在父JSP

<%= pageContext.findAttribute("sortBy") %>是給參數值

在frame1.jsp

<%= pageContext.findAttribute("sortBy") %>總是給空

請建議如何通過請求對象或parent.jsp的pagecontext到frame.jsp

在此先感謝

+0

[我如何使用Markdown或HTML格式化我的帖子](http://stackoverflow.com/help/formatting) – buhtz

回答

0
  1. pageContext不是請求範圍。這是頁面範圍。如果正常${sortBy}${requestScope.sortBy}不起作用,請嘗試<%=request.getParameter("sortBy")%>
  2. 我希望iframe具有不同的請求範圍。

您將能夠通過jsp:include加載小部件。如果您需要比已經在請求範圍中設置的更多數據,則可以使用參數。

<c:set var = "myWidget" value = "widget1"/> 
<jsp:include page="${myWidget}.jsp" flush="true"> 
    <jsp:param name="sortBy" value="abc"/> 
    <jsp:param name="myAttribute2" value="value2"/> 
</jsp:include> 

注意,你還是不會找到的屬性在pageContext,你包括page有自己pageContext

在這裏您可以找到mechanisms to include content in JSP的列表。