struts2异常处理

 我来答
天罗网17
2022-10-09 · TA获得超过6159个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:71.5万
展开全部

  struts 异常处理

  在web开发中 经常要处理异常 这样无论用户进行怎样的操作 都不会把异常页面展现给用户 这样可以给用户一个好的感受 现在来说下struts 进行开发中进行的异常处理

   在servlet中进行异常处理 在web xml中配置文件中加入以下代码:

  <! 处理异常 >

  <error page>

  <error code> </error code>

  <location>/mons/error jsp</location>

  </error page>

  <error page>

  <exception type>java lang NullPointerException</exception type>

  <location>/mons/errornull jsp</location>

  </error page>

   struts 进行异常处理首先需要添加exception拦截器 而默认拦截器栈已经加入了这个拦截器 所以不用特意的声明 struts 的异常映射声明有两种 全局声明和局部声明

  注意:当异常发生时 struts 会根据抛出的异常去异常映射文件中寻找在继承关系上与该异常最接近的映射进行匹配 例如 action抛出一个IOException 这个异常是Exception的直接子类 所以会匹配到Exception映射 再者 action抛出一个BatchUpdateException 它既是SQLException的子类 同时也是Exception的子类 但是它和SQLException的继承关系最接近 所以它会匹配到SQLException

  <struts>

  <package name= default >

  

  <global results>

  <result name= login type= redirect >/Login action</result>

  <result name= Exception >/Exception jsp</result>

  </global results>

  <global exception mappings>

  <exception mapping exception= java sql SQLException result= SQLException />

  <exception mapping exception= java lang Exception result= Exception />

  </global exception mappings>

  

  <action name= DataAccess class= pany DataAccess >

  <exception mapping exception= pany SecurityException result= login />

  <result name= SQLException type= chain >SQLExceptionAction</result>

  <result>/DataAccess jsp</result>

  </action>

  

  </package>

  </struts>

  说明 全局异常也只有在package包下进行配置 只对下面的action起作用 在struts没有如struts中那样的异常 局部异常和全局异常的搭配使用

  用三个例子说明 当访问DataAccess时如果发生异常

  一个java sql SQLException将会chain到另一个action SQLExceptionAction

  一个 pany SecurityException 将会重定向到Login action

  任何其他继承了java lang Exception 的异常将会转至Exception jsp

  值栈中的Exception值 默认情况下 发生异常时 struts 会向值栈中压入一下两个值

  exception  异常对象本身

  exceptionStack

  stack trace的值

  在jsp中可以打印出异常信息

  <%@ page language= java import= java util * pageEncoding= UTF %>

  <%@ taglib prefix= s uri= s %>

  <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >

  <>

  <head>

  <title>系统异常</title>

  </head>

  <body>

  <h >出错信息 请与管理员联系</h >

  <s:actionerror/>

  <p>

  <s:property value= %{ssage} />

  </p>

  <h >详细信息</h >

  <p>

  <s:property value= %{exceptionStack} />

  </p>

  </body>

lishixinzhi/Article/program/Java/ky/201311/28331

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式