对Struts 2.0中的struts.xml配置文件详细说明 2
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" ,externalReferenceResolver="" >里面个个属性的作用</package>
?
?????????? 1、
?????????????? name : package的name是唯一的。配置文件中可能有很多package包,
??????????????? 但是包中name必须唯一。
?
????? 2、
?????? namespace=""点击超链接
?
????? 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
externalReferenceResolver="类库">
?
?
?
?
?
http://struts2.group.iteye.com/group/wiki/1613-9-struts-profile---struts-xml-continued
?
http://hi.baidu.com/suofang/blog/item/42fd06d1b5a4e1c9572c84c5.html
?
?
http://hi.baidu.com/gujianting2010/blog/item/4adc38f8f1c6d78db801a085.html