java52(Struts2--03package与action
package元素:
定义一个struts的包,它是把配置文件按照面向对象的思想来管理,分模块开发。
name属性: 指定包的名称。注意:包的名称在配置文件中唯一
extends属性: 指定当前包的父包。它是按照面向对象的思想管理的体现
abstract属性: 把包声明成一个抽象包,抽象包就是用来继承的。只要没有action元素的包,才能被定义为抽象包
namespace属性: 命名空间,当指定了名称空间之后,访问路径就变成了(命名空间+动作名称)。当不指定该属性时,该属性的默认值是" "
命名空间的搜索顺序:
第一步:先去找对应的名称空间
在指定的名称空间下找到了:就执行第二步。
在指定的名称空间下没找到,按照名称空间结构向上追溯,一直到根名称空间,只要在任何一级找到了,执行第二步
第二步:找动作名称
先在指定的名称空间下。搜索对应的动作名称,找到了就执行动作类的动作方法
在指定的名称空间下没找到对应的动作名称:前往默认的名称空间下,找动作名称(注意这里只找动作名称)
action元素:
用于定义动作名称,动作类和动作方法的映射。以及当出现不同情况时前往指定的结果视图
name属性: 动作的名称,和jsp页面上的请求url中的名称对应起来。注意此处不能写 .action
class属性: 指定动作类
method属性: 指定要执行的动作方法
创建动作类的三种方式:
1 直接创建
2 实现action接口
3 继承ActionSupport类
默认动作类:
默认的动作类是:ActionSupport的类,他是在Struts-default.xml的配置文件中定义。
动态方法调用配置:
1 *代表的是动作名称,当有何动作名称相匹配的时候可以用{出现的位置}来代替
2 动作名称!动作方法名称.action
注意要开启struts.enable.DynamicMethodInvocationfalse (是否允许动态方法调用)