<structs-config>元素是Structs配置文件的根元素。<structs-cofig>元素有8个子元素。DTD定义如下:
<!ELEMENT structs-config(data-sources,formbean,global-exeception,global-forward,action-mapping,controller,message-resources,plug-in)>
在Struts配置中,必须按照以上的DTD指定的先后顺序来配置<Structs-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Structs应用启动时会生成错误
1. <data-sources>元素
<data-sources>元素包含零个、一个或者多个<data-sources>子元素,<data-sources>用于配置特定的数据源,它可以包含多个<set-property>子元素,用于设置数据源的各种属性。
配置了数据源后,就可以在Action类中访问数据源,在org.apache.structs.action.Action类中定义了getDataSource(HttpRequrst)方法,它用于获取数据源对象的引用。
例如:
DataSource dataSource;
Connection connection;
dataSource =getDataSource(request);
connection=dataSource.getConnection();
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。
[注]
key 元素指定属性或元素值(或一组值)必须是指定范围内的键。键的范围为实例文档中的包含 element。键意味着数据在指定范围内应是唯一的、不为零的并且始终存在的。
key 元素必须按顺序包含下列元素:
- selector 元素包含一个 XPath 表达式,该表达式指定一个元素集,在元素集中,field 指定的值必须是唯一的。
- 父元素: element
关于键:
可以查看jdk文档,找MAP接口,它的实现类都是键值对的形式保存数据的
键:就是你存的值的编号
值:就是你要存放的数据
例如:Map map=new HashMap();
map.put("name","qianke158"); 这里的键是name,值是qianke158;
如果要获取map的值,可以直接用map.get("name"),就能得到前面map中存放的数据qianke158
2. <form-beans>元素
<form-beans>元素用来配置多个ActionForm Bean,<form-beans>包含多个<forom-bean>子元素,每个<from-bean>包含多个属性,ClassName,name,type(类型)
例如:
<form-beans>
<form-bean name="HelloForm" type="hello.HelloForm"/>
</form-beans>
注意:配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>元素。
例如:
<form-beans>
<form-bean name="HelloForm" type="hello.HelloForm"/>
<form-bean name="userForm" type="org.apache.structs.action.DynaAction">
<from-property name="firstname" type="java.lang.String"/>
<form-property name="secondname" type="java.lang.String">
<form-property name="age" type="java.Integer" initial="18">
</form-beans>
3. <global-exception>元素
<global-exception>用于配置异常处理,<global-exception>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置java异常和异常处理类org.apache.structs.action,Exception Hander之间的映射。
例如:
<global-exceptions>
<exception type="java.abc.ABCException" key="exception.abc"' handler="***.****.***.exception.*******">
</exception>
</global-exceptions>
4. <gloable-forwards>元素