• struts1.3异常处理机制


    当Struts的控制器捕获到异常时,在异常处理块中,创建描述异常信息的ActionMessage对象,并放入ActionMessages对象中.然后把ActionMessages对象存放到一定范围内(request或者session范围),接下来,视图层的<html:errors/>标签检查特定范围内的ActionMessages对象,把本地化的错误信息显示到页面上.

    1. struts 的异常处理

    Action :

    ActionErrors msg = new ActionErrors();

    msg.add("login_error", new ActionMessage("app.error.login",true));

    addErrors(request, msg);

    ActionErrors是保存错误信息的集合

    ActionMessage是一条错误提示信息

    new ActionMessage("app.error.login"))和MessageResources绑定

    new ActionMessage("登录错误"),false)不和MessageResources绑定

    new ActionMessage("error2","value0","value1"));第一个参数指和MessageResources绑定

    的key值,后面的参数是绑定的MessageResources里的value值 {0},{1}

    addErrors() 方法将所有的报错信息放入到request里去

    jsp:

    <html:errors property="login_error" />

    property 的值对应的是添加错误信息的时候指定的key,

    如果没有property 属性,就把所有的报错信息显示处理

    总结:

    struts1.3异常处理机制

    当Struts的控制器捕获到异常时,在异常处理块中,创建描述异常信息的ActionMessage对象,

    并放入ActionMessages对象中.然后把ActionMessages对象存放到一定范围内

    (request或者session范围),接下来,视图层的<html:errors/>标签检查特定范围

    内的ActionMessages对象,把本地化的错误信息显示到页面上.

    来点理论的:

    Strut1.x的异常处理蛮简单。配置时分为全局,异常与局部异常。

    对于一个action若发生异常则先查找本身action是否有相应异常的配置,若无则查找全局异常配置,还没有则报错。异常处理一定会用到资源文件

    1. 局部配置如下

    <!--

                key指定信息在资源文件中的键值

                type指发生的异常类型。

                bundle使用哪个资源文件,不配置则使用默认的资源文件

                 -->

        <exception key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

    1. 全局配置如下,各属性与局部配置一样

        <global-exceptions>

        <exception  key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

        </global-exceptions>

         3.对于一个异常,通过会转入另外一个页面,提示错误,struts1.x在此设计有些不合理,一旦转入异常提示页面时,即使这个页面设置了isErrorPage="true"但是它的内置有exception对象依然为空,所以不能用exception得到异常中的信息,只能用<html:errors />来得到,一大失误哦,这也就是说struts1.x的异常处理是离不开资源文件的,因为异常的信息只能放在资源文件中。

    本文转载于:http://blog.csdn.net/hakunamatata2008/article/details/6213758

  • 相关阅读:
    笔记75 微服务笔记2
    笔记73 高级SSM整合2
    笔记72 高级SSM整合
    笔记71 SSM整合
    笔记70 Spring Boot快速入门(八)(重要)
    笔记69 基于Redis的zSet集合做数据缓存实现分页查询
    如何理解多租户架构?
    Tomcat8.0源码编译
    HTML语言
    String类
  • 原文地址:https://www.cnblogs.com/liuyq/p/3687974.html
Copyright © 2020-2023  润新知