action之间的转发出问题了
问题描述:后台action方法 publishPre(前台链接,主负责将页面导向 发布页面)
一个发布的页面 publish.jsp;
发布的后台处理action 方法 publish(所有的action在同一个类里面);
由 publishPre ---》 页面跳转 publish.jsp ---- 发布提交后,我让他不通过,
然后error返回(@Result(name=ERROR,location="***/publish.jsp")}));
函数到达 return,return之后 报错:
java.lang.IllegalStateException: Response already committed;
求解释 --------------------编程问答-------------------- @Result(name=ERROR,location="***/publish.jsp") 这边的主要问题 好像是 页面跳转到publish.jsp 所以报错,转发到其他jsp不会出错,,,,,这会是什么问题? --------------------编程问答-------------------- 可以贴一下代码 --------------------编程问答-------------------- 你response后又作什么了? 代码贴的太少了,说的也有些乱。。 --------------------编程问答-------------------- /**
* 获取发布页面
* @return
*/
@Action(value = "releasepre",
results = { @Result(name = SUCCESS, location="/***/release.jsp") })
public String releasePre()
{
return SUCCESS;
}
/**
* 提交发布,成功返回我发布的列表(代码省略)
* 失败返回 发布页面
* @return
*/
@Action(value = "releasecar",
results = { @Result(name = SUCCESS,location="mycar",type="redirectAction"),
@Result(name = ERROR, location="***/release.jsp")})
public String release()
{
try {
if(this.getLoginMember()!=null)
cargoService.publishCargo(this.getLoginMember().getMemberId(), cargo);
initDataDictionary();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
this.message = e1.getMessage();
return ERROR;
}
return SUCCESS;
}
在发布提交后,由releasecar处理后,报错 java.lang.IllegalStateException: Response already committed;
至于 “你response后又作什么了?” 代码就是这样的流程,前台的发布页面 release.jsp 就是负责显示message , 会对response 有何操作呢?
还有就是 整个我要实现的是 当前台输入的在提交后,后台判断输入失败,然页面在返回到发布页面的前台,然后保证刚刚输入的信息还保留着(不需要ajax实现)
应该清楚吧 --------------------编程问答--------------------
如果将 @Action(value = "releasepre",
results = { @Result(name = SUCCESS, location="/***/release.jsp") })
中的 location 导向其他的页面就不会出问题(是不是 发布页面的jsp提交给后台,后台转发到的页面又是发布的jsp 然后这两个对象在后台都是有对象的?而且是同一个???) --------------------编程问答-------------------- 这个好像是前台jsp中 引用到 EL 表达式取值的时候,取值发生错误,但是为什么抱这个错误,难道是没有这个变量的时候 会在response中在写入这个变量只是这个变量是空的?
补充:Java , Java EE