在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);
标签使用情况:
<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);