JSP页面中如何将某个action生成的另一个JSP页面包含进来

打个比方,现在我有一个a.jsp页面,还有一个b.action,
如果主动请求b.action会转向b.jsp页面,并且b.jsp中的内容由b.action动态生成,我想在a.jsp中包含b.jsp中的内容,但是如果请求a.jsp页面,只会将b.jsp中的静态内容给包含进来,现在的问题是如何在请求a.jsp页面时将由b.action动态生成的b.jsp页面内容都包含进来?
用的是struts2的框架,不知道说的够不够清楚~
望高人指点~

<jsp:include page="a.jsp" />
<jsp:include page="b.jsp" />

别以为上面只是两行代码,其实上面是一个页面的所有代码,我们把它看成结构页并命名为g.jsp
然后我们看代码,第一句就是引入a页面,a页面是静态的吧?所以引入完全没有问题,然后第二句,要引入b页面了,但是action还没有调用,怎办?很简单,我们去修改struts-config.xml,找到b.action的配置代码,假如本来是<forward name="success" path="/b.jsp" />
我们现在改为
<forward name="success" path="/g.jsp" />这样到时候就能显示两个页面了
那么还有一个问题,如果我们要单独显示a页面怎办?也很简单
我们在b.action中添加些代码,当action执行成功时,也就是return mapping.findForward("%%%%");前,我们可以生成一个request,具体代码比如:
request.setAttribute("show_b_jsp","*");
然后在g.jsp里修改为
<jsp:include page="a.jsp" />
<logic:present name="show_b_jsp" scope="request">
<jsp:include page="a.jsp" />
</logic:present>
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-11
试下:
----------------------------------------------------
<jsp:include page="b.action" />
----------------------------------------------------
如果 直接跳转到了 b.jsp页面的话
没办法了 给它来硬的;
我们可以在action 里得到 request

----------------------------------------------------
HttpServletRequest request = ServletActionContext.getRequest();
----------------------------------------------------

在使用request 的RequestDispatcher.forward();跳转到b.jsp

----------------------------------------------------
request.getRequestDispatcher("b.jsp").include(request, response);
----------------------------------------------------

这样我们的<jsp:include page="b.action" /> 就好用了

什么出异常。。。

return null; OK本回答被提问者采纳
第2个回答  2016-05-20
一般来说,在JSP页面中包含文件有两种方式,即<%@include file=”uri”%>和<jsp:include page=”uri”></jsp:include>,但要注意它们的区别:
1、 前者路径中不能传参数,也不能用表达式,后者可以。例如:
<jsp:include page=”<%=path%>” flush=”true”>
<jsp:param name=”参数名” value=”参数值”/>
</jsp:include>
传递的参数可以用request.getParameter(“参数名”)来获取。
2、 二者处理方式不同。前者会将被包含文件原封不动地插入到包含文件中,然后再编译,是一个文件;而后者是在执行到<jsp:include>标签后,转向被包含文件,并先执行,然后再继续执行原页面上后面的代码,也就是说会对两个文件分别编译。因此,两页面间的变量如ID、NAME等不能共享。
前者对包含文件和被包含文件的属性要求一致,如不能在这两个页面设置不同的contentType内容(例如一个设置为charset=”GBK”,另一个设置为charset=”gb2312”),否则会抱错;而使用后者,不会有这样的问题。
第3个回答  2016-01-26
在一个JSP页面中包含另一个JSP页面的三种方式。
(1)include指令
include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。
<%@ include file="Header.jsp"%>
(2)include标准动作
<jsp:include page=“Header.jsp”/>
(3)采用JSTL
<c:import url=".sina.com/index.html">
注意:(1)include指令在转换时插入“Header.jsp”的源代码,而<jsp:include>标准动作在运行时插入“Header.jsp"的响应。
(2)采用前两种方式,只能包含当前web应用的界面, 不过,《c:import》可以包含容器之外的内容。
第4个回答  2016-03-29
采用内嵌页的方式
1, 直接请求a.jsp 但是在a.jsp中添加一个内嵌页<iframe></iframe>
2,内嵌页的写法为 <iframe src="b.action"></iframe>
这样,在打开a.jsp时,也能对b.action进行请求了.

jsp页面跳转另一个jsp(jsp页面跳转另一个jsp和地址栏输入才跳转)_百度...
jsp:paramname=parameterName value="{parameterValue|%=expression%}"\/+\/jsp:forward 这个action使您可以将request向前到另外一个页面它只有一个属性pagePage应有一个相对的URL组成这可以是一个静态的值或者是能够在被请求的时候计算得到的值就如下面两个例子一般 jsp:forwardpage="\/utils\/errorReporterjs...

在一个jsp页面中如何通过点击一个按钮转到另一个jsp页面
那你就把链接改成按钮然后在上面挂个js事件就可以了。这样的效果可以:onclick="window.location='新页面'" 来实现。1.在原来的窗体中直接跳转用,代码:window.location.href="你所要跳转的页面"。2、在新窗体中打开页面用,代码:window.open('你所要跳转的页面');window.history.back(-1)。返...

怎么把action中的值传到jsp页面
对于action的类属性,直接为其赋值(例如 message="Test";),然后在jsp页面中使用el表达式取出这个值(${message },直接以类属性名称取值即可,el默认的取值域就是request,struts2会将action的所有带有get,set的属性自动的放入request域中【当然你也可以使用struts的标签库,不推荐】)对于action中方法中...

如何在js中写代码调用action中的方法返回结果集合,并注入到包含该js的j...
你说的应该是ajax技术.在浏览器中有一个对象xmlhttpRequest,他可以实现异步请求而不用刷新页面.只要指定一个url,可以包含参数,像你这个,就是怎么访问action,就怎么写这个url,然后执行时会自动从这个action返回结果,你所说的"注入"是js对页面元素的操作范畴.你可以从网上搜索ajax,有很多的例子,你可以借鉴...

jsp如何将一个一面的数据传到另一个页面
1、通过jsp的内置对象—request对象获取参数:(1)通过超链接传参:例:把a.jsp中i的值传到b.jsp中:在a.jsp页面中的核心代码为:传参 (说明:给i赋值时也可以用jsp表达式,例如i=<%变量名 %>)在b.jsp页面中的核心代码为:<%String j=request.getParameter("i"); %> <%=j %> (2)...

一个系统的JSP页面嵌入另一个系统的JSP页面有什么好的方法, 除了用...
可以使用,嵌入页面也可以 可以使用<javascript>自己写一些控制也可以 也可以使用extjs框架,它的里面提供了一些界面UI的panel,也可以实现加载其它的页面

怎样在jsp页面中调用另一个jsp页面中的变量?
1.放入session,用request.setAttribute("key",varName); 放入request.getAttribute("key");取出 2.用地址栏传,就是在ip地址后+?变量=value,下一张页面用request.getParameter("变量")取。3.用表单,写个type="hidden"的隐型表单把name和value写好,下一张页面也用request.getParameter("变量")...

jsp如何获取一个标签中的内容,放入另一个标签中?
首先定义一下SELECT的下拉,显示的文字就叫VALUE,里面对应的值就叫KEY,数据库里一般都是存的这个KEY,肯定不会存那个汉字VALUE的 然后在 页面上SELECT控件后面加个隐藏的文本框,刚打开页面的时候如果这个SELECT有值,也就是说如果是修改的时候,你应该把这个值放到隐藏框里,并且让SELECT显示这个选中的值...

在jsp文件当前页面当前位置中如何显示另一个jsp 页面的内容
使用标签引入 <jsp:include page=""><\/jsp:include> 或者 <%@ include file="head.jsp"%> 或者 241

如何从一个JSP页面中跳到另一个JSP页面呢?
你可以在jsp页面使用超链接标签 例如 点击我跳转 也可以在后台servlet中使用 重定向 例如 response.sendRedirect("xxx.jsp");也可以使用转发 例如 request.getRequestDispatcher("xxx.jsp").forward(request.response);

相似回答