`
liqiang_cn
  • 浏览: 7246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jsp:include与struts1.0问题记录,与Action配合使用。

阅读更多
问题描述:
包含jsp:include的页面是通过Action方式跳转,jsp:include的page属性页也设置的是Action方式跳转。
当jsp:include默认flush=false时,页面直接跳转到jsp:include的page属性指定的页面。
当jsp:include=true时,被include的页面位置报错,提示请求已经提交。
原因说明:
关键在struts1.0处理跳转的时候,用的是org.apache.struts.tiles.TilesRequestProcessor类的以下代码:
protected   void   doForward(
String   uri,
HttpServletRequest   request,
HttpServletResponse   response)
throws   IOException,   ServletException   {
                       
if   (response.isCommitted())   {
this.doInclude(uri,   request,   response);
                       
}   else   {
super.doForward(uri,   request,   response);
}
}
1.当 <jsp:include   page= "**.do "/> 前面没有输出,且flush默认为false时,response是没有commit的。所以struts全部把它当forward处理了。
2.当flush=true时,response进行提交,所以页面报错,提示请求已经提交。
遗留问题:
this.doInclude(uri,   request,   response); 方法具体执行内容?
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics