Cannot forward after response has been committed

在jsp页面用<jsp:include>标签包含一个逻辑流时报如下错误:
标签使用情况:
<jsp:include page="ctsi.pf.base.test.flow" flush="true" />
报错信息:
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:313)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.primeton.engine.core.impl.AbstractJavaPageflow.sendView(AbstractJavaPageflow.java:163)
at ctsi.pf.base.test_flow.end0(test_flow.java:145)
………………
解决方法:


将需要引入的页面流的视图图元或或结束图元的高级属性中设置,默认为Forward改为“包含”。


参考资料:
使用页面定位方式
页面流在执行一个视图图元的时候(包含结束图元),有三种方式来显示这个图元的页面资源(例如html、jsp文件等):


Forward 
Include 
Redirect 
页面定位方式可以在视图图元或结束图元的高级属性中设置,默认为Forward。




1、Forward相当于执行下面的代码:


...
//request为HttpServletRequest对象;
//url为视图图元中的页面资源的路径;
RequestDispatch rd = request.getDispatcher(url);
Rd.forward(request,response);
...
2、Include相当于执行下面的代码:


...
//request为HttpServletRequest对象;
//url为视图图元中的页面资源的路径;
RequestDispatch rd = request.getDispatcher(url);
Rd.include(request,response);
...
当在一个jsp中通过jsp标准标签include了一个页面流请求的时候,如下代码所示:


<jsp:include page="com.primeton.samples.base.pageflow.callService.flow?_eosFlowActioin=action0"/>
则执行action0到视图的时候,必须以include方式来执行。


3、Redirect则相当于执行下面的代码:


//reponse为HttpServletResponse对象;
response.sendRedirect(url);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值