Struts2学习笔记(五)之异常处理机制

来源:互联网 发布:淘宝网首页板鞋 编辑:程序博客网 时间:2024/06/05 14:43

       
               我们在知道在软件开发中的异常处理是很重要的,作为成熟的MVC框架的Struts2也提供了异常处理处理机制,对于一场处理:用户发送请求-->Action控制器-->发现相应的异常-->转到相应的试图进行显示错误信息..


    (一)平时我们对于出现异常,可以直接使用try{}catch(){}进行拦截处理,或者使用throw new XXXException()进行抛出异常,看下下execute()方法:

     

       

      (二)这个方法直接往外把异常抛给框架了,说明我们不必使用try{}catch(){},进行处理;转而直接使用throw new XXXException()进行异常处理,即声明式的异常处理; 

        

       下面直接看下声明式的异常处理,这需要在struts.xml框架中进行配置,设置设计到一下一些元素和属性:

  • result:这个属性指定了之后,当Action中出现异常的时候,系统就会转到result素指定的页面
  • exception:在<exception-mapping.../>中,是异常处理类的异常类型,需要写全名,包括包名;

         局部和全局异常映射配置

  • 局部异常配置:把<exception-mapping>当做为Action的子元素进行配置
  • 全部异常配置:使用<global-exception-mappings>然后配置<exception-mapping>这个子元素

     下面看个例子

   ①:首先自定义一个MyCustomException类:

package com.jiangqq.exception;/* * 自定义异常类 */public class MyCustomException extends Exception {private String M_message;public MyCustomException(String p_MeString) {super(p_MeString);this.M_message = p_MeString;}public String getM_message() {return M_message;}public void setM_message(String mMessage) {M_message = mMessage;}}
      ②:看下Action当中的关键代码:

@Overridepublic String execute() throws Exception {if (!"Hello".equals(username)) {throw new MyCustomException("用户名错误.....");}if (!"World".equals(password)) {throw new MyCustomException("密码错误.....");}return SUCCESS;}
       ③:struts.xml文件中的配置(先使用局部配置方法)


       
下面是页面显示异常信息:

       

                    


    可以看出上面是使用局部的异常的配置来进行异常处理的,下面来举例一下使用全部异常配置


    ①:先看下:使用全部的异常类型定义,但是定义result属性值对应的逻辑视图名使用局部配置


    

  ①:使全部的异常类型定义与result属性值对应的逻辑视图名都使用全部配置




      【注意】对于局部和全局的映射配置,如果我们配置了全局映射,那就会对所有的Action都有效,但是局部配置的异常只会对当前所在的Action有效。如果局部的异常映射和全局异常配置了同一个类型的异常,在本Action内部的局部异常映射会直接覆盖掉全局的配置


       (三)进行在异常的页面异常信息输出显示

    当我们抛出异常,在异常处理页面上面显示异常信息,可以使用Struts2的标签进行输出:(Struts2标签配置)

   <%@ taglib prefix="s"  uri="/struts-tags"%>
     然后使用下面的标签:

      <s:property value="exception.message">: 输出自定义的异常的message的信息

         

      好了今天就学习到这里,上面有很多讲的不到位之处,还望大家提出来共同交流,共同提高

      

       代码下载链接:http://download.csdn.net/detail/jiangqq781931404/4194357


          


     

     

原创粉丝点击