Struts2中global-exception-mappings的配置

本文记录了在Struts 2.2.1版本中配置异常处理时遇到的问题,即在struts.xml文件中加入全局异常映射(global-exception-mappings)和全局结果(global-results)标签后出现的XML格式错误,并分享了解决方案。

  在看struts-2.2.1的文档时,按照例子的步骤一步步地做下去,但是在做到Exception Handling这一节时(http://struts.apache.org/2.2.1/docs/exception-handling.html)要在struts.xml中配置以下信息:

<global-exception-mappings>
          <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException"   result="securityerror" />
          <exception-mapping exception="java.lang.Exception" result="error" />
   </global-exception-mappings>
 <global-results>
        <result name="securityerror">/securityerror.jsp</result>
        <result name="error">/error.jsp</result>
  </global-results>

但是当我把这段内容Ctrl+C再Ctrl+Z到Eclipse时package标签却报了错,错误如下:The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)"。大概就是说package下只能放特定的几个标签,但是明明有global-exception-mappings,一时有些困惑……

于是Google搜索,在Struts以往的版本中也发现一个类似的例子,有些不一样的是global-results标签在global-exception-mappings的前面,于是就在本地试验了一下,把global-results标签与global-exception-mappings调换了一下顺序,错误消失了……

至于这个问题的原因,我思考了一下还是想不出个所以然,觉得完全没必要这样,global-exception-mappings在前面反而能更清晰地表达意思,或者就不要管顺序嘛,而struts为什么非要报这个错误呢?

请高手给予解答。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值