现有如图示页面:a.jsp中用<jsp:include>动作标签包含了两个页面:adminSidebar.jsp和adminRightbar.jsp,代码如下:
<divid="content">
<!-- 页面左边侧边栏 -->
<jsp:includepage="adminSidebar.jsp"></jsp:include>
<!-- 页面右边-->
<jsp:includepage="adminRightbar.jsp"></jsp:include>
</div>
其中adminRightbar.jsp页面中用iframe包含了一个页面b.jsp,代码如下:
<divclass="main-content-right">
<iframe name=rightFramestyle="WIDTH:100%; HEIGHT:800px" src="b.jsp"
frameborder=0>
</iframe>
</div>
现在要在显示a.jsp页面时把b.jsp中的数据显示出来,其中b.jsp中的数据需从数据库中读取。
有两种方法可以解决上述问题。
1、 使用session
在加载a.jsp页面时,直接去Servlet中读取b.jsp页面所需数据后不放到request中,而是放到session中,这样在a.jsp页面中b.jsp同样可以获取它的数据。最后重定向到a.jsp。
request.getRequestDispatcher("a.jsp").forward(request,response);
2、 加载b.jsp时读取数据
在加载a.jsp页面时,在adminRightbar.jsp中去Servlet中读取数据,如下代码:
<divclass="main-content-right">
<iframe name=rightFramestyle="WIDTH:100%; HEIGHT:800px" src="<%=path%>/Servlet?flag=browse"
frameborder=0>
</iframe>
</div>
在Servlet中读取b.jsp页面所需数据后放到request中,然后重定向到b.jsp,
request.getRequestDispatcher("b.jsp").forward(request,response);
最后重定向到a.jsp。
request.getRequestDispatcher("a.jsp").forward(request,response);
注意这两个重定向的不同,一个是a.jsp,另一个是b.jsp;
其他方法:如直接在b.jsp中用java小脚本也可以,但这样做页面会很乱,故不考虑。
本文探讨了在JSP页面中通过不同方式加载数据的方法,包括使用session和在加载时直接读取数据两种主要方案,并提供了具体的实现示例。
712

被折叠的 条评论
为什么被折叠?



