首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

在<jsp:include/>中引用action不能正常显示,该怎么处理

2012-01-08 
在jsp:include/中引用action不能正常显示在 jsp:include/ 中引用多个action遇到不能正常显示的问题,只

在<jsp:include/>中引用action不能正常显示
在 <jsp:include/> 中引用多个action遇到不能正常显示的问题,只能显示第一个action的内容,相关文件如下:
1,include.jsp的内容:
代码

      1.   <jsp:include   page= "test1.do "/>    
      2.   <jsp:include   page= "test2.do "/>    


2,struts-config.xml的部分内容:
代码

      1.   <action   path= "/test1 "   name= "myForm "   type= "TestAction1 "   scope= "request "   validate= "true "   input= "/error.jsp ">    
      2.       <forward   name= "test "   path= "/test1.jsp "/>    
      3.   </action>    
      4.   <action   path= "/test2 "   name= "myForm "   type= "TestAction2 "   scope= "request "   validate= "true "   input= "/error.jsp ">    
      5.       <forward   name= "test "   path= "/test2.jsp "/>    
      6.   </action>    


3,TestAction1的内容(TestAction2的内容类似)
代码

      1.   import   javax.servlet.http.HttpServletRequest;    
      2.   import   javax.servlet.http.HttpServletResponse;    
      3.   import   org.apache.struts.action.Action;    
      4.   import   org.apache.struts.action.ActionForm;    
      5.   import   org.apache.struts.action.ActionForward;    
      6.   import   org.apache.struts.action.ActionMapping;    
      7.      
      8.   public   class   TestAction1   extends   Action    
      9.   {    
    10.           public   ActionForward   execute(    
    11.                           ActionMapping   actionMapping,    
    12.                           ActionForm   actionForm,    
    13.                           HttpServletRequest   request,    
    14.                           HttpServletResponse   response)    
    15.           {    
    16.                   return   actionMapping.findForward(   "test "   );    
    17.           }    
    18.   }    


4,test1.jsp的内容(test2.jsp的内容相似)
代码

      1.   test1:   <br   />    
      2.   <%=new   java.util.Date()%>    


当在浏览器中打开include.jsp时,只能显示test1.jsp的内容,即
=============================
test1:


Sat   Aug   25   12:57:16   CST   2007
=============================
但我将include.jsp改为如下内容时,就能正常显示,
代码

      1.   XXXX    
      2.   <jsp:include   page= "test1.do "   flush= "true "/>    
      3.   <jsp:include   page= "test2.do "/>    


“XXXX”可以是任意长度的任意字符,显示的结果为:
=============================
XXXX   test1:
Sat   Aug   25   12:59:01   CST   2007   test2:
Sat   Aug   25   12:59:01   CST   2007
=============================
但是去掉“XXXX”或者“flush= "true "”就都只能显示test1.jsp的内容。请问这是什么原因?我估计是struts跳转到jsp时出现的问题。
另外,若不通过struts,直接include   jsp文件,比如,修改include.jsp的为以下内容,是两个jsp的内容都可以显示的。
代码

      1.   <jsp:include   page= "test1.jsp "/>    
      2.   <jsp:include   page= "test2.jsp "/>    


我的struts版本是1.2.7,jsp容器是tomcat5.0.28,jdk是1.5

[解决办法]

[解决办法]
应该和 <jsp:include page= "test1.do "> 的flush= "true "属性有关。
当flush属性为true,表示在执行插入操作之前,先调用当前页面的输出流的flush()方法。
[解决办法]
2. <forward name= "test " path= "/test1.jsp "/>
3. <forward name= "test " path= "/test2.jsp "/>
2个test的值

[解决办法]
我猜想是不是由于struts容器在解释action路径时,是当前工作目录发生了改变,将你的相对路径换为全路经试试:如jsp:include page= " <%=context_url%> /test1.do "
[解决办法]
struts 要包含页面,我一般用 frame,这样没有问题,

热点排行