浏览 3037 次
锁定老帖子 主题:struts通用Exception处理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-04
自定义一个Exception类继承自RunTimeException,定义属性key、values等,并实现多个构造方法用于初始化。 如: private String key; private Object values; //带key和参数 public SystemException(String message,String key,Object value){ super(message); this.key=key; this.values=new Object[]{value}; } //带key和参数数组 public SystemException(String message,String key,Object values[]){ super(message); this.key=key; this.values=values; } public SystemException(String message,String key) { super(message); } struts-config.xml配置 <global-exceptions> <!-- 全局异常 --> <exception key="error" type="java.lang.Exception" path="/common/error.jsp" /> </global-exceptions> 在ExceptionHandler中实现附加参数等处理,如SystemExceptionHandler继承ExceptionHandler重写execute方法: public ActionForward execute(Exception ex, ExceptionConfig ec, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException { ActionForward forward=null; if(ec.getPath()!=null){ forward=new ActionForward(ec.getPath()); }else{ forward=mapping.getInputForward(); } logger.debug("出现异常",ex); if (ex instanceof SystemException) { SystemException se = (SystemException) ex; String key=se.getKey(); ActionMessage error=null; if(key==null){ //无参,输入message error=new ActionMessage(key,se.getMessage()); }else{ if(se.getValues()!=null){ //带参 error=new ActionMessage(key,se.getValues()); }else{ //不带参 error=new ActionMessage(key); } } //置error入 collection under Globals.ERROR_KEY. this.storeException(request, key, error, forward, ec.getScope()); return forward; } //默认 Handle the Exception. //Return the ActionForward instance (if any) returned by the called ExceptionHandler return super.execute(ex, ec, mapping, form, request, response); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |