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

[b]问题描述:[/b]
包含jsp:include的页面是通过Action方式跳转,jsp:include的page属性页也设置的是Action方式跳转。
当jsp:include默认flush=false时,页面直接跳转到jsp:include的page属性指定的页面。
当jsp:include=true时,被include的页面位置报错,提示请求已经提交。
[b]原因说明:[/b]
关键在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进行提交,所以页面报错,提示请求已经提交。
[b]遗留问题:[/b]
this.doInclude(uri, request, response); 方法具体执行内容?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值