Action的配置

    在struts2中核心组件就是action,在配置struts2的xml文件时:spa

<package>元素时必须指定name属性,该属性是该包的惟一标识;xml

extends为可选属性,指定该包能够继承其余包,(需将被继承的<package>写在前面)一般使用该属性继承struts-default包;继承

namespace用于定义该包的命名空间,URL经过该命名空间+action的name访问到对应的资源,namespace只适应于<package>,对于<package>下的<action>没法单独指定namespace,在同一个namespace中不能同时存在名字相同的action;以下图:资源

输入URL:http://localhost:8081/MyStruts/namespace/myaction.action系统首先会在 /namespace的命名空间下查找名字为myaction的Action,若是在该命名空间下没找到名字为myaction,系统将直接进入默认的命名空间去查找名字为myaction的Action;io

若输入的URL为:http://localhost:8081/MyStruts/findspace/namespace/myaction.action系统首先会在命名空间为/findspace/namespace下查找名字为myaction的Action,若没有查找到,不会继续在命名空间为/findspace下查找名字为myaction的Action;这点与Spring MVC不一样;class

在<action>中class不是为必须属性,若没有的话,系统默认使用系统的ActionSupport类;struts2

除此以外,当用户找不到Action时,咱们还能够为系统配置默认的action,配置

action的默认处理类,当没有为action配置class时,系统调用的是ActionSupport类,系统默认struts-default包中有以下配置:命名空间

咱们也能够本身定义系统默认调用类:im

改变系统默认类;