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

       
               我们在知道在软件开发中的异常处理是很重要的,作为成熟的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当中的关键代码:

@Override
	public 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


          


     

     

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值