SystemExceptionHandler.java
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:2k
源码类别:

OA系统

开发平台:

Java

  1. package com.bjsxt.oa.web;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.apache.commons.logging.Log;
  6. import org.apache.commons.logging.LogFactory;
  7. import org.apache.struts.action.ActionForm;
  8. import org.apache.struts.action.ActionForward;
  9. import org.apache.struts.action.ActionMapping;
  10. import org.apache.struts.action.ActionMessage;
  11. import org.apache.struts.action.ExceptionHandler;
  12. import org.apache.struts.config.ExceptionConfig;
  13. import com.bjsxt.oa.managers.SystemException;
  14. public class SystemExceptionHandler extends ExceptionHandler {
  15. private static Log logger = LogFactory.getLog(SystemExceptionHandler.class);
  16. /**
  17.  * 处理SystemException异常
  18.  */
  19. @Override
  20. public ActionForward execute(
  21. Exception ex, 
  22. ExceptionConfig ae, 
  23. ActionMapping mapping, 
  24. ActionForm formInstance, 
  25. HttpServletRequest request, 
  26. HttpServletResponse response) throws ServletException {
  27. ActionForward forward = null;
  28. if(ae.getPath() != null){
  29. forward = new ActionForward(ae.getPath());
  30. }else{
  31. forward = mapping.getInputForward();
  32. }
  33. logger.debug("出现异常", ex);
  34. //ex.printStackTrace();
  35. if(ex instanceof SystemException){
  36. SystemException se = (SystemException)ex;
  37. //取出key值
  38. String key = se.getKey();
  39. ActionMessage error = null;
  40. if( key == null){
  41. error = new ActionMessage(ae.getKey(),se.getMessage());
  42. }else{
  43. if(se.getValues() != null){
  44. error = new ActionMessage(key,se.getValues());
  45. }else{
  46. error = new ActionMessage(key);
  47. }
  48. }
  49. this.storeException(request, key, error, forward, ae.getScope());
  50. return forward;
  51. }
  52. return super.execute(ex, ae, mapping, formInstance, request, response);
  53. }
  54. }