Struts2

作者: Ew0828 | 来源:发表于2019-02-21 20:08 被阅读0次

    1.捕捉异常

    在Struts-default.xml中配置是否开启Struts2的异常映射(配置了一个拦截器)

    默认情况下,该拦截器是打开的

    如何完成异常处理?

    在struts.xml中通过<exception-mapping>标签完成

    该标签有两个两个属性:

    (1)exception:用于指定可以处理哪一类异常,其值为异常类的全限定名

    (2)result:用于指定处理异常后跳转到哪一个逻辑视图

    该标签可以放在两个位置,一个是作为<global-exception-mapping>的子标签,一个是作为<action>的子标签

    作为<global-exception-mapping>子标签是,可以处理所有action产生的异常,作为<action>子标签时,仅仅可以处理该action中产生的异常。

    如何在页面中显示异常信息?

    在jsp页面中,可以通过以下两个s标签来显示异常信息:

    <s:property value="exception">:输出异常对象本身

    <s:property value="exceptionStack">:输出异常堆栈信息

    2.标签库

    3.值栈(重点)

    当一个请求发送到某一个action上时,Struts2框架会自动创建一个该action的实例(action是多例的,与servlet不同,sevlet是单例的),在创建action实例的同时,Struts2框架也会创建与之对应的ActionContext对象和ValueStack对象,用于存储action运行所需数据。这个ValueStack对象同时也会保存对应的Action对象。而且。值栈对象也会被保存在request域中,key为struts.valueStack。

    Struts2框架提供一个名为ValueStack的接口,其有一个实现类:OgnlValueStack。

    值栈对象内部维护着两个容器,一个名为context,是一个Map对象,另一个名为root,是一个CompoundRoot(继承自ArrayList)类型的对象,我们通常所说值栈都指的是root栈(存值一半都存放在root栈中,但是同时也会存进context栈中)。

    相关文章

      网友评论

          本文标题:Struts2

          本文链接:https://www.haomeiwen.com/subject/bimfxqtx.html