1.package配置相关
属性名 是否必须 说明
Name 是 Package的唯一标识,不允许同名
Extends 否 指定要继承的包
Namespace 否 指定名称空间
Abstract 否 声明包为抽象否
例子1:
<package name="cost" extends="struts-default" namespace="/cost">
</package>
例子2: json-default 包 继承了struts-default 包
<package name="cost" extends="json-default" namespace="/cost">
</package>
2.没有指定namespace属性
如果某个包没有指定namespace属性,即该包使用默认的命名空间,默认的命名空间总是""。
3.包含配置:
在Struts2中可以将一个配置文件分解成多个配置文件,
那么我们必须在struts.xml中包含其他配置文件。
例如:
<struts>
<include file="struts-default.xml"/>
<include file="struts-user.xml"/>
<include file="struts-book.xml"/>
<include file="struts-shoppingCart.xml"/>
</struts>
4.拦截器配置,在包中
<!-- 注册拦截器 -->
<interceptors>
<interceptor name="checklogin" class="interceptor.CheckLoginInterceptor">
</interceptor>
<!-- 定义拦截器栈,将checklogin和defaultStack合并 -->
<interceptor-stack name="loginStack">
<interceptor-ref name="checklogin"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!-- 为当前package中所有Action指定默认的拦截器栈 -->
<default-interceptor-ref name="loginStack"/>
5.<!-- 全局result定义 -->在包中
<global-results>
<result name="login" type="redirectAction">
<param name="namespace">/main</param>
<param name="actionName">loginform</param>
</result>
</global-results>
6.web.xml中前端控制器的配置
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>