struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd ">
<struts>
<!-- 在src下面的struts.xml中引入org.tstruts2.com中的astruts.xml配置文件 -->
<include file="./org/tstruts2/com/ astruts.xml "></include>
</struts>
总结说明:用struts.xml当做目录,来存放其它的功能模块的配置文件。用<include file=""></include>引入即可。
注意路径别写错了。
astruts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd ">
<struts>
<package name="org.tstruts2" namespace="/cc" extends="struts-default">
<action name="td" method="lu" class="org.tstruts2.com.Test">
<result name="success">./success.jsp</result>
<result name="false">./false.jsp</result>
</action>
</package>
</struts>
解释一下<package name="",namespace="",extends="",
abstract="" ,externalReferenceResolver="" >里面个个属性的作用</package>
1、
name : package 的name 是唯一的。配置文件中可能有很多package包,
但是包中 name必须唯一。
2、
3、
extends 该package 要继承的package 的名字, 在新的命名空间下, 可以使用所有继
承自另外一个package 的配置信息( 包括Action 配置). 通常每个包都应该继承
struts-default包,因为struts2很多核心的功能都是拦截器实现的.如:从请求中把请求参数封装到Action中/文件上传/数据验证等都是通过拦截器实现的.struts-default定义了这些拦截器和Result类型.可以这样说,只有当包继承了struts-default时,才能使用strut2中提供的核心功能.struts-default包是在struts2-core.2.x.x.jar文件中的struts-default.xml中定义.struts-default.xml也是struts2的默认配置文件.当struts2每次启动的时候,都会自动加载struts-default.xml配置文件
4、 abstract的默认值是false。
<package name="struts-default" abstract="true">
在struts-default.xml的第73行配置<package/>时,声明了一个abstract="true" 属性
我们发现这个包中声明了结果类型、拦截器等等,却唯独没有声明<action/> 的配置
但是在我们自己定义的struts.xml 中有若干个<action/>的配置
因此abstract="true" 表示当前包是抽象包,所以当前包中不允许出现<action/> 的配置
抽象包的作用极类似于Java抽象类。自己不能实例化,只能被继承,然后由子类实现它的若干方法,最后由子类实例化
所以struts-default包中不能包含任何<action/>定义,具体的定义则是由其子包来定义的
我想问的是怎么继承,怎么被子类实例化。???
5、externalReferenceResolver:用来整合第三方类库,如Spring
package提供了将多个Action组织为一个模块的方式 package的名字必须是唯一的 package可以扩展
当一个package扩展自另一个package时该package会在本身配置的基础上加入扩展的package 的配置
父package必须在子package前配置 name:package名称 extends:继承的父package名称
abstract:设置package的属性为抽象的抽象的package不能定义action 值true:false
namespace:此package命名如果不设定默认为RootContext,该命名空间影响到url的地址,例如此命名
空间为/test那么访问是的地址为 http://localhost:8080/struts2/test/XX.action
externalReferenceResolver:用来整合第三方类库,如Spring
externalReferenceResolve r="类库">