一口一口吃掉Struts(十)——异常自动处理机制

系统 1877 0
在通常的情况下,我们得到异常以后,需要将页面导航到一个错误提示的页面,提示错误信息。 利用Stuts我们可以采用两种方式处理异常
一、编程式异常处理
*即我们在Action中调用业务逻辑层对象的方法时,用try{ }catch的方式来截获异常之后,手工对异常进行处理
*我们以前的开发过程中,都是使用编程式的异常处理
*在编程式异常处理的时候,我们可以使用struts的消息处理机制来对这些异常信息进行处理。
二、自动异常处理机制
*即在Action中不捕捉异常,而是将异常抛出给struts框架处理
*我们需要在配置文件中指示struts如何处理这些被抛出的异常
*使用<exception/>元素来定义自动异常处理
方式一在上一篇有关国际化的文章中,我们已经涉及过了,这里我们主要说一下方式二。
主要步骤:
1、配置Excepiton标签
        <action path="/login" type="com.jialin.LoginAction" name="userForm"
			scope="request" validate="true" attribute="uf" input="/index.jsp">

			<exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />
			<exception key="login.password.error" type="com.jialin.PasswordErrorException"
				path="/LoginFail.jsp" />

		</action>
      

该Exception只对当前action起作用,也可以配置全局exception
        <global-exceptions>
		<exception key="login.user.not.found" type="com.jialin.UserNotFoundException" />
		<exception key="login.password.error" type="com.jialin.PasswordErrorException"
			path="/LoginFail.jsp" />
	</global-exceptions>
      

哪个优先?就近原则。
<exception/> 元素配置的关键属性是:
*key – 即这个异常所对应的错误提示消息文本的key,这个key的值, 需要在资源属性文件中进行定义
*type – 即定义需要处理哪种类型的Exception
*path – 定义一旦出现异常,需要转向哪个页面来进行提示,如果不定义path属性,默认情况下,将使用Action配置中的input属性的值来作为转向的页面
2、 JSP 页面中,使用 < html:errors /> 标签,即可将其异常对应的错误消息文本进行显示
示例:
还是以登录为例——
LoginAction
        **
 * 登录action
 * 
 * @author jialin 作用:取得表单数据,调用model层业务逻辑,返回转向信息
 */
public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UserActionForm userForm = (UserActionForm) form;
		String userName = userForm.getName();
		int password = userForm.getPassword(); 

		UserManage userManage = new UserManage();
		User user = new User();
		user.setName(userName);
		user.setPassword(password);
        //这里不再有trycatch语句
		userManage.ValidateUser(user);
		return mapping.findForward("success");

	}

}



        
        
      
配置文件采用上面列举出的。
显示界面使用使用 < html:errors /> 标签,即可将其异常对应的错误消息文本进行显示
效果:
下篇继续

一口一口吃掉Struts(十)——异常自动处理机制


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论