1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts-config PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
4 "http://jakarta.apache.org/struts/dtds/struts-config.dtd">
5
6 <!-- struts-config.xml中的元素必须按照上述doc指令中的dtd文档定义顺序书写,本例即遵从了dtd定义顺序 -->
7 <!-- struts-config是整个xml的根元素,其他元素必须被包含其内 -->
8
9 <struts-config><!-- struts-config 开始 -->
10 <!-- 1 ------------------------------------------------------------------------------------ --> <!--
11 名称:data-sources
12 描述:data-sources元素定义了web App所需要使用的数据源
13 数量:最多一个
14 子元素:data-source
15 -->
16 <data-sources>
17 <!--
18 名称:data-source
19 描述:data-source元素定义了具体的数据源
20 数量:任意多个
21 属性:
22 @key:当需要配置多个数据源时,相当于数据源的名称,用来数据源彼此间进行区别
23 @type:可以使用的数据源实现的类,一般来自如下四个库
24 Poolman,开放源代码软件
25 Expresso,Jcorporate
26 JDBC Pool,开放源代码软件
27 DBCP,Jakarta
28 -->
29 <data-source key="firstOne" type="org.apache.commons.dbcp.BasicDataSource">
30 <!--
31 名称:set-property
32 描述:用来设定数据源的属性
33 属性:
34 @autoCommit:是否自动提交 可选值:true/false
35 @description:数据源描述
36 @driverClass:数据源使用的类
37 @maxCount:最大数据源连接数
38 @minCount:最小数据源连接数
39 @user:数据库用户
40 @password:数据库密码
41 @url:数据库url
42 @loginTimeout:超时
43 -->
44 <set-property property="url" value="jdbc:mysql://localhost:3306/数据库名称"/>
45 <set-property property="driverClass" value="com.mysql.jdbc.Driver"/>
46 <set-property property="autoCommit" value="true"/>
47 <set-property property="description" value=""/>
48 <set-property property="maxCount" value="10"/>
49 <set-property property="minCount" value="2"/>
50 <set-property property="user" value="root"/>
51 <set-property property="password" value=""/>
52 <!-- 或 -->
53 <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" />
54 <set-property property="url" value="jdbc:mysql://localhost:3306/数据库名称" />
55 <set-property property="autoCommit" value="false" />
56 <set-property property="user" value="root" />
57 <set-property property="password" value="root" />
58 <set-property property="minCount" value="5" />
59 <set-property property="maxCount" value="10" />
60 <set-property property="description" value="" />
61 <set-property property="readOnly" value="false" />
62 <set-property property="loginTimeout" value="" />
63 </data-source>
64 </data-sources>
65
66 <!-- 2 ------------------------------------------------------------------------------------ -->
67 <!--
68 名称:form-beans
69 描述:用来配置多个ActionForm Bean
70 数量:最多一个
71 子元素:form-bean
72 -->
73 <!-- Form-beans 定义 ActionForm -->
74 <form-beans><!-- form-beans 开始 -->
75 <!--
76 名称:form-bean
77 描述:用来配置ActionForm Bean
78 数量:任意多个
79 子元素:form-property
80 属性:
81 @className:指定与form-bean元素相对应的配置类,一般默认使用org.apaceh.struts.config.FormBeanConfig,如果自定义,则必须继承 FormBeanConfig
82 @name:必备属性!为当前form-bean制定一个全局唯一的标识符,使得在整个Struts框架内,可以通过该标识符来引用这个ActionForm Bean。
83 @type:必备属性!指明实现当前ActionForm Bean的完整类名。
84 -->
85 <form-bean name="Hello" type="myPack.Hello">
86 <!--
87 名称:form-property
88 描述:用来设定ActionForm Bean的属性
89 数量:根据实际需求而定,例如,ActionForm Bean对应的一个登陆Form中有两个文本框,name和password,ActionForm Bean中也有这两个字段,则此处编写两个form-property来设定属性
90 属性:
91 @className:指定与form-property相对应的配置类,默认是org.apache.struts.config.FormPropertyConfig,如果自定义,则必须继承FormPropertyConfig类
92 @name:所要设定的ActionForm Bean的属性名称
93 @type:所要设定的ActionForm Bean的属性值的类
94 @initial:当前属性的初值
95 -->
96 <form-property name="name" type="java.lang.String"/>
97 <form-property name="number" type="java.lang.Iteger" initial="18"/>
98 </form-bean>
99
100 <!-- //////////////////////////////////////////////////////////////////////////////
101 <!-- 登录的 ActionForm
102 <form-bean name="登录loginForm" type="org.apache.struts.validator.DynaValidatorForm">
103 <form-property name="比如工作ID" type="java.lang.String"/>
104 <form-property name="比如用户ID" type="java.lang.String"/>
105 ... 等等
106 </form-bean>
107 <!-- 其他对应的 ActionForm
108 <form-bean name="处理问题的Form" type="org.apache.struts.validator.DynaValidatorForm"/>
109 <form-property name="标题,表字段" type="java.lang.String"/>
110 <form-property name="姓名,表字段" type="java.lang.String"/>
111 ... 等等
112 </form-bean>
113 /////////////////////////////////////////////////////////////////////////////////-->
114
115 <!-- ActionForm -- 对应 -->
116 <!--
117 @name:必备属性.为当前form-bean制定一个全局唯一的标识符,使得在整个Struts框架内,可以通过该标识符来引用这个ActionForm Bean - "userForm"
118 @type:必备属性.当前ActionForm Bean的完整类名 - "org.我的项目.struts.form.UserForm.java"
119 -->
120 <form-bean name="userForm" type="org.我的项目.struts.form.UserForm" />
121 <form-bean name="adminForm" type="org.我的项目.struts.form.AdminForm" />
122
123 </form-beans><!-- form-beans 结束 -->
124
125 <!-- 3 ------------------------------------------------------------------------------------ -->
126 <!--
127 名称:global-exceptions
128 描述:处理异常
129 数量:最多一个
130 子元素:exception
131 -->
132 <global-exceptions>
133 <!--
134 名称:exception
135 描述:具体定义一个异常及其处理
136 数量:任意多个
137 属性:
138 @className:指定对应exception的配置类,默认为org.apache.struts.config.ExceptionConfig
139 @handler:指定异常处理类,默认为org.apache.struts.action.ExceptionHandler
140 @key:指定在Resource Bundle种描述该异常的消息key
141 @path:指定当发生异常时,进行转发的路径
142 @scope:指定ActionMessage实例存放的范围,默认为request,另外一个可选值是session
143 @type:必须要有!指定所需要处理异常类的名字。
144 @bundle:指定资源绑定
145 -->
146 <exception
147 key=""hello.error
148 path="/error.jsp"
149 scope="session"
150 type="hello.HandleError"/>
151 </global-exceptions>
152
153 <!--
154 名称:global-forwards
155 描述:定义全局转发
156 数量:最多一个
157 子元素:forward
158 -->
1 <global-forwards>
2 <!--
3 名称:forward
4 描述:定义一个具体的转发
5 数量:任意多个
6 属性:
7 @className:指定和forward元素对应的配置类,默认为org.apache.struts.action.ActionForward
8 @contextRelative:如果为true,则指明使用当前上下文,路径以“/”开头,默认为false
9 @name:必须配有!指明转发路径的唯一标识符
10 @path:必须配有!指明转发或者重定向的URI。必须以"/"开头。具体配置要与contextRelative相应。
11 @redirect:为true时,执行重定向操作,否则执行请求转发。默认为false
12 -->
13 <forward name="A" path="/a.jsp"/>
14 <forward name="B" path="/hello/b.do"/>
15 </global-forwards>
16
17 <!-- 4 ------------------------------------------------------------------------------------ -->
18
19 <!--
20 名称:action-mappings
21 描述:定义action集合
22 数量:最多一个
23 子元素:action
24 -->
25 <action-mappings><!-- action-mappings 开始-->
26 <!--
27 名称:action
28 描述:定义了从特定的请求路径到相应的Action类的映射
29 数量:任意多个
30 子元素:exception,forward(二者均为局部量)
31 属性:
32 @attribute:制定与当前Action相关联的ActionForm Bean在request和session范围内的名称(key)
33 @className:与Action元素对应的配置类。默认为org.apache.struts.action.ActionMapping
34 @forward:指名转发的URL路径
35 @include:指名包含的URL路径
36 @input:指名包含输入表单的URL路径,表单验证失败时,请求会被转发到该URL中
37 @name:指定和当前Acion关联的ActionForm Bean的名字。该名称必须在form-bean元素中定义过。
38 @path:指定访问Action的路径,以"/"开头,没有扩展名
39 @parameter:为当前的Action配置参数,可以在Action的execute()方法中,通过调用ActionMapping的getParameter()方法来获取参数
40 @roles:指定允许调用该Aciton的安全角色。多个角色之间用逗号分割。处理请求时,RequestProcessor会根据该配置项来决定用户是否有调用该Action的权限
41 @scope:指定ActionForm Bean的存在范围,可选值为request和session。默认为session
42 @type:指定Action类的完整类名
43 @unknown:值为true时,表示可以处理用户发出的所有无效的Action URL。默认为false
44 @validate:指定是否要先调用ActionForm Bean的validate()方法。默认为true
45 注意:如上属性中,forward/include/type三者相斥,即三者在同一Action配置中只能存在一个。
46 -->
47 <action path="/search"
48 type="addressbook.actions.SearchAction"
49 name="searchForm"
50 scope="request"
51 validate="true"
52 input="/search.jsp">
53 <forward name="success" path="/display.jsp"/>
54 </action>
55
56 <!-- ////////////////////////////////////////////////////////////////////////////////////////////////////
57 <!-- 配置进入主页的请求的 Action --
58 <action path="/index" scope="request" validate="false" input="error" type="com.项目.action.LogoutAction">
59 <forward path="index" name="Index"/>
60 </action>
61
62 <!-- 配置员工或用户登录的Action --
63 <action path="/登录路径" name="登录loginForm" scope="request" validate="false" input="index" type="com.项目.action.登录loginAction">
64 <forward path="要转发的页面比如/techSupport.do?method=goTechSupportView" name="GoTechSupportView"/>
65 <forward path="要转发的页面比如管理员" name="GoAdminView"/>
66 </action>
67 //////////////////////////////////////////////////////////////////////////////////////////////////// -->
68
69 <!-- 配置用户的Action -- 对应-->
70 <!-- userForm -->
71 <action attribute="userForm"
72 input="/jsp/errors.jsp"
73 name="userForm"
74 parameter="status"
75 path="/jsp/user"
76 scope="request"
77 type="org.我的项目.struts.action.UserAction">
78 <forward name="registersuccess" path="/jsp/index.do?status=list"></forward><!-- 配置局部跳转 -->
79 <forward name="registerfailure" path="/jsp/register.jsp"></forward>
80 <!-- 配置局部异常处理
81 <exception type="" key=""/>
82 -->
83 </action>
84
85 <!-- 此处的意思是直接交给spring容器掌管了
86 <action attribute="loginForm"
87 name="loginForm"
88 path="/login"
89 scope="request"
90 type="org.springframework.web.struts.DelegatingActionProxy" 此处的意思是直接交给spring容器掌管了/>
91 -->
92
93
94 </action-mappings><!-- action-mappings 结束-->
95
96 <!-- 5 ------------------------------------------------------------------------------------ -->
97 <!--
98 名称:controller
99 描述:用于配置ActionServlet
100 数量:最多一个
101 属性:
102 @bufferSize:指定上传文件的输入缓冲的大小.默认为4096
103 @className:指定当前控制器的配置类.默认为org.apache.struts.config.ControllerConfig
104 @contentType:指定相应结果的内容类型和字符编码
105 @locale:指定是否把Locale对象保存到当前用户的session中,默认为false
106 @processorClass:指定负责处理请求的Java类的完整类名.默认org.apache.struts.action.RequestProcessor
107 @tempDir:指定文件上传时的临时工作目录.如果没有设置,将才用Servlet容器为web应用分配的临时工作目录.
108 @nochache:true时,在相应结果中加入特定的头参数:Pragma ,Cache-Control,Expires防止页面被存储在可数浏览器的缓存中,默认为false
109 -->
110
111 <!-- 配置RequestProcessor插件
112 <controller processorClass="com.项目.MyRequestProcessor"></controller>
113 -->
114
115 <!-- 自定义RequestProcessor 用于解决汉字乱码和Spring集成问题 -->
116 <controller processorClass="com.项目.processor.EncodingProcessor"/>
117
118 <!--
119 <controller contentType="text/html;charset=UTF-8"
120 locale="true"
121 processorClass="CustomRequestProcessor">
122 </controller>
123 -->
124
125 <!-- 6 ------------------------------------------------------------------------------------ -->
126
127 <!--
128 名称:message-resources
129 描述:配置Resource Bundle.
130 数量:任意多个
131 属性:
132 @className:指定和message-resources对应的配置类.默认为org.apache.struts.config.MessageResourcesConfig
133 @factory:指定资源的工厂类,默认为org.apache.struts.util.PropertyMessageResourcesFactory
134 @key:
135 @null:
136 @parameter:
137 -->
138
139 <!-- 配置国际化资源文件 -->
140 <message-resources parameter="com.项目.resource.ApplicationResources"/>
141
142 <!--
143 <message-resources
144 null="false"
145 parameter="defaultResource"/>
146 <message-resources
147 key="images"
148 null="false"
149 parameter="ImageResources"/>
150 -->
151
152 <!-- 7 ------------------------------------------------------------------------------------ -->
153
154 <!-- 配置Title标记库插件 -->
155 <plug-in className="org.apache.struts.title.TitlesPlugin">
156 <set-property property="definitions-config" value="/WEB-INF/title-defs.xml"/>
157 </plug-in>
158
159 <!-- 8 ------------------------------------------------------------------------------------ -->
160
161 <!-- 配置表单验证组件 -- validate验证文件
162 <plug-in classNme="org.apache.struts.validator.ValidatorPlugin">
163 <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
164
165 <set-property property="stopOnFirstError" value="false">
166 </set-property>
167 -->
168
169 <!--
170 名称:plug-in
171 描述:用于配置Struts的插件
172 数量:任意多个
173 子元素:set-property
174 属性:
175 @className:指定Struts插件类.此类必须实现org.apache.struts.action.PlugIn接口
176 -->
177 <plug-in
178 className="org.apache.struts.validator.ValidatorPlugIn">
179 <!--
180 名称:set-property
181 描述:配置插件的属性
182 数量:任意多个
183 属性:
184 @property:插件的属性名称
185 @value:该名称所配置的值
186 -->
187 <set-property
188 property="pathnames"
189 value="/WEB-INF/validator-rules.xml,/WEB-INF/vlaidation.xml"/>
190 </plug-in>
191
192 <set-property property="stopOnFirstError" value="false"></set-property>
193
194 <!-- 9 ------------------------------------------------------------------------------------ -->
195
196 <!-- 配置spring插件 -->
197 <plug-in className="org.springframework.web.struts.ContextLoaderPlugin">
198 <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"></set-property>
199 </plug-in>
200
201 <!-- 10 ------------------------------------------------------------------------------------ -->
202 <!-- 配置Plugin插件 -->
203 <plug-in className="com.项目.MyPlugin">
204
205 <!-- 11 ------------------------------------------------------------------------------------ -->
206
207 </struts-config> <!-- struts-config 结束 -->