【转载】struts2异常处理

原文地址:http://my.oschina.net/lsw90/blog/63362

今天处理了struts2 的异常,跟大家分享下:

1.处理不存在的Action:

只需在struts.xml中加

?
1
2
< default-action-ref name = "defaultAction" />
< action name = "defaultAction" class = "com.lsw.permission.action.DefaultAction" />

2.处理其他异常(如空指针,不存在的方法...),我们一般会定义全局异常及全局Result:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
<global-results><!-- 定义全局Result -->
     <result name= "redirect" type= "redirect" >${returnPageURL}</result>
     <result name= "dispatcher" type= "dispatcher" >${returnPageURL}</result>
     <result name= "login" type= "dispatcher" >/login.jsp</result>
     <result name= "exceptionError" type= "dispatcher" >/WEB-INF/jsp/error/exception.jsp</result>
</global-results>
 
<global-exception-mappings><!-- 全局异常处理 -->
     <exception-mapping result= "exceptionError" exception= "java.lang.NullPointerException" />
     <exception-mapping result= "exceptionError" exception= "java.lang.NoSuchMethodException" />
     <exception-mapping result= "exceptionError" exception= "java.lang.Exception" />
</global-exception-mappings>

 3.处理不存在的页面,如不存在的JSP,html,htm等页面(404异常),struts是不能处理这个异常的,还有其他异常(如500,401等等)都交给tomcat来处理,只需在web.xml中加如下配置即可:

?
1
2
3
4
5
6
7
8
9
10
<!-- 处理不存在的页面 -->
<error-page>
     <error-code> 404 </error-code>
     <location>/WEB-INF/jsp/error/ 404 .jsp</location>
</error-page>
<!-- 处理 500 异常 -->
<error-page>
     <error-code> 500 </error-code>
     <location>/WEB-INF/jsp/error/ 500 .jsp</location>
</error-page>
引用来自“tianhandigeng1498”的评论

对于没有的方法这样处理确实可以,但是如果有这个action,但是没有要访问的方法那应该这样处理呢,比如这样 :
public class ProductAction extends ActionSupport {
public String add() {
return INPUT;
}
}
现在我只有这个方法,但是我这样访问:
product!edit.action
这样你这样配置,会报no such method的错误,而且页面上也会把相应的错误信息显示出来,楼主对于这个问题,怎么解决,想一下吧,也可以加我q 874904507 一起讨论,我也没想出一个万全的方法

<exception-mapping result="exceptionError" exception="java.lang.NoSuchMethodException" />
这一句就是处理你说的异常啊。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值