Struts2

1.捕捉异常

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

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


如何完成异常处理?

在struts.xml中通过标签完成

该标签有两个两个属性:

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

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

该标签可以放在两个位置,一个是作为的子标签,一个是作为的子标签

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


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

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

:输出异常对象本身

:输出异常堆栈信息


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)