• 16.异常处理


    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

    步骤一、建立struts2exception项目下,在该项目下建立登录页面login.jsp。主要代码如下:
    <form action="<%=request.getContextPath() %>/login.action">

                  username:<input type="username" name="username"><br>

                  <input type="submit" value="login">

    </form>      

    步骤二、建立LoginAction,代码如下:
    package com.asm;

    public class LoginAction extends ActionSupport {

           private String username;

           public String execute() throws Exception {

                  if (username.equals("exception")) {

                         throw new ClassNotFoundException("类未被找到");

                  } else if (username.equals("global")) {

                         throw new Exception("全局异常");

                  } else {

                         return SUCCESS;

                  }

           }
           ...省力get/set方法

    }

    步骤三、struts.xml配置文件如下:

    <struts>

           <package name="ex" extends="def">

                  <action name="login" class="com.asm.LoginAction">

                         <exception-mapping result="myException"

                                exception="java.lang.ClassNotFoundException">

                         </exception-mapping>

                         <result name="myException">/exception.jsp</result>

                         <result name="success">/main.jsp</result>

                  </action>

           </package>

     

           <package name="def" extends="struts-default" abstract="true">

                  <global-results>

                         <result name="myGlobal">/globalException.jsp</result>

                  </global-results>

     

                  <global-exception-mappings>

                         <exception-mapping result="myGlobal"

                                exception="java.lang.Exception">

                         </exception-mapping>

                  </global-exception-mappings>

           </package>

    </struts>

    分析:异常处理机制较为简单,所以在此只略作说明。当登录时输入“exception”时,在LoginAction中会抛出会一个ClassNotFoundException异常,此异常我们采取的局部异常处理的方式,如果登录时输入“globla”,则会抛出Exception异常,此异常我们采取的是全局异常的处理方式,在ex包中我们继承了全局异常所在的包。提示:<exception-mapping>中的result属性的值来源于<result>元素中的name属性的值。从实例可以看出,我们一般把这种全局性的异常放在一个抽象包中供其实包继承。

  • 相关阅读:
    心得体悟帖---200209(效率太低的事情我是不会做的,这个可以解释我所有的行为)
    心得体悟帖---200209(顺心而动的睡觉方式(6+1或者5+2的睡觉方式))
    按钮用图片做背景hover时闪烁
    范仁义Emmet课程---1、HTML速写之Emmet语法规则
    CSS3疑难问题---5、:before和::before的区别
    reset.css是什么
    日常英语---200209(Abbreviations(Emmet Abbreviations Syntax))
    日常英语---200209(relative(layer model))
    日常英语---200209(Emmet Abbreviations Syntax)
    伪元素和伪类在chrome浏览器里面还是比较好区分的
  • 原文地址:https://www.cnblogs.com/sharpest/p/5580595.html
Copyright © 2020-2023  润新知