spring异常处理如何跟struts配合?

playSCforever 2014-04-26 06:46:04
public class UserAfterThrowing extends ActionSupport implements ThrowsAdvice {
public void afterThrowing(Method method,Object[] args,Object target,
Exception exception)throws Throwable{
System.out.println("throwing a exception:" +exception.toString());
System.out.println("成功回滚事务");
ServletActionContext.getResponse().sendRedirect("../error.jsp");
}
}
在applicationContext.xml里面:
<bean id="exceptionHandler1" class="com.yzj.aop.UserAfterThrowing"></bean>

<bean id="target" class="com.yzj.service.UserService"></bean>

<bean id="firstAop" class="org.springframework.aop.framework.ProxyFactoryBean"
p:interceptorNames="exceptionHandler1"
p:target-ref="target"
p:proxyTargetClass="true"
/>

上面的代码都没有问题 能成功捕获异常 也能成功回滚事务
但是。。。。
异常捕获到了之后 我只会根据ServletActionContext.getResponse().sendRedirect("../error.jsp");进入想要进入的页面
请问应该怎样和struts配合?
比如 如何返回字符串 “error” 给struts?
然后struts根据result进入对应的视图?

所有代码里面都没有try catch 和throws exception 都是利用ThrowsAdvice 来完成异常捕获的
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
椰树海岛 2014-04-29
  • 打赏
  • 举报
回复
在Struts调用DAO执行数据库有异常就在Struts里面try/cache住,异常就return ERROR.在action.xml配置error的跳转jsp就好了
suciver 2014-04-29
  • 打赏
  • 举报
回复
当项目用struts2+spring的结合时一般不用spring来处理异常。spring管理的所有bean只是抛出异常的声明,在struts2的配置文件声明异常映射做跳转。如果是ajax的可以自己定义异常拦截器,由拦截器捕捉异常做ajax操作
小灯光环 2014-04-29
  • 打赏
  • 举报
回复
你是想问struts2的异常机制吗? 首先你需要在struts.xml的Action中定义异常映射:
<action name="xxx">
<exception-mapping result="xxx-exception" exception="类名">
<result name="xxx-exception">/error.jsp</result>
</action>
页面上显示异常有两种标签可以选择:
<s:property value="exception"/>    //简单的打印异常信息
<s:property value="exceptionStack"/>   //打印异常的堆栈信息
大概就是这么用的,貌似还可以在<global-results>里去定义全局异常映射,有需求的话了解一下,这个东西很简单的。
playSCforever 2014-04-28
  • 打赏
  • 举报
回复
。。周末过了还没人?
playSCforever 2014-04-27
  • 打赏
  • 举报
回复
。。。。难道周末都不在?
涨知识的coder 2014-04-26
  • 打赏
  • 举报
回复
帮顶。。。。
playSCforever 2014-04-26
  • 打赏
  • 举报
回复
。。求帮助啊。。。
playSCforever 2014-04-26
  • 打赏
  • 举报
回复
。。。怎么没人啊。。。第一次发帖。。。

67,513

社区成员

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

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