今天在用struts标签<logic:forward name=""/>重定向页面时发生java.lang.IllegalStateException异常,错误信息为:
Exception forwarding for name index: java.lang.IllegalStateException: Cannot forward after response has been committed
说的大概意思是不能在response提交后再forward。搞了很久都没头绪,因为我是在页面的最前面用的<logic:forward name=""/>,哪来的response被提交了呢?后来在网上看了一个贴说他在include前用respsonse.sendRedirct("")就好使,在include后用就不好使,原贴地址http://www.cndiy8.com/ask32/how123540.htm
哈哈,我的应该是同一个问题,不同的是我没有用include而是用的struts的Tiles框架做的页面,于是我把<logic:forward name=""/>在使用Tiles前就好使了。代码:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<logic:notPresent name="memberlogin">
<logic:forward name="index"/>
</logic:notPresent>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tiles:insert definition="order-definition"/></td>
</tr>
</table>