怎么用拦截器知道HttpServletResponse向前台输出了内容

theoffspring 2011-02-17 09:52:30
scenario是这样的:ajax向action发起一个业务调用,如果失败,会用HttpServletResponse向前台输出错误消息,我想用拦截器进行拦截,在不修改action的基础上,如果出现错误,做一些别的操作.


public void updateReport() throws Exception {//要调用的业务方法

try {
bo.insert(...);

} catch (Exception e) {
setResErrMsg(MessageUtil.getMessage(e.getMessage(), new Object[0]));

}

}

protected void setResErrMsg(String errMsg) throws IOException {

HttpServletResponse res = ServletActionContext.getResponse();



res.setContentType("test/html;charset=Shift-Jis");
OutputStreamWriter writer =
new OutputStreamWriter(res.getOutputStream(),ApplicationInfo.getNativeEncoding());

try {
JSONObject obj = new JSONObject();
obj.put("errMsg", errMsg);
writer.write(obj.toString());

} finally {
writer.flush();
writer.close();
}
}


如果实在没办法,只能重构action,加上一个标志boolean来判断了.
...全文
172 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧