Struts2

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栈中)。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容