struts
配置文件
web.xml
是
web
应用的发布描述文件。
。
。
struts-config.xml
是
struts
应用专有的配置文件
,
可以根据需要给这个配置文件起其它的文件名。
一、
web
配置文件
web.xml
<servlet>
元素必须出现在
<servlet-mapping>
元素前面,
<servlet-mapping>
元素必须出现在
<taglib>
元素的
前面。
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
元素用来声明
servlet
初始化参数,
config
参数是配置
struts
的
ActionServlet
专有的,用来设
置
struts
配置文件的相对路径。
<welcome-file-list>
。
。
。
不能直接把
struts
的
Action
作为欢迎文件,
以下是在欢迎文件中调用
struts action
。
<global-forwards>
<forward name="welcome" path="HelloWorld.do"/>
</global-forwards>
<body>
<logic:forward name="welcome"/>
</body>
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
配置错误处理
<error-page>
<error-code>404</error-code>
<location>/common/404.jsp</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/common/505.jsp</location>
</error-page>
配置异常处理
<error-page>
<exception-type>javax.servle.ServletException</exception-type>
<location>/common/system_error.jsp</location>
</error-page>
配置标签库
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/mytaglib.tld</taglib-uri>
<taglib-location>WEB-INF/mytaglib.tld</taglib-location>
</taglib>
web
版本在
2.4
版本中允许不在
web.xml
中配置
taglib
描述文件而直接在页面上引用。
二、
struts
配置文件
struts-config.xml
<struts-config>
元
素
:
这
是
Struts
配
置
文
件
的
根
元
素
,
和
它
对
应
的
配
置
类
org.apache.struts.config.ModuleConfig
类
,
<struts-config>
元素有
8
个子元
素。他们的
DTD
定
义
是
data-sources?form-bean?
global-exception?global-forwards?action-mapping?controller?message-resources*plug-in*
<data-sources>
元素:配置应用数据源,一般没用。
。
。
<form-beans>
元素
:用来配置多个
ActionForm
,包含一个或者
N
个
<form-bean>
子元素。
name
指定该
ActionForm
的唯一标识符,这个属性是必须的以后作为引用使用;
type
指定
ActionForm
类的完整类名,
这个属性也是必须的。
该元素主要用来配置表单验证的类。它包含如下属性:
1.
className
:
一
般
用
得
少
,
指
定
和
form-bean
元
素
对
应
的
配
置
类
,
默
认
为
org.apache.struts.config.FormBeanConfig
,如果自定义,则必须扩展
FormBeanConfig
类,可有可无。
2.
name
:
ActionForm Bean
的惟一标识。必须。
3.
type
:
ActionForm
的完整类名。必须。
如下所示:
<form-beans>
<form-bean
name="Loign"
type="com.ha.login">
</form-bean>
</form-beans>
若配置动态
ActionForm Bean,
还必须配置
form-bean
元素的
form-property
子元素。
<global-exceptions>
元素
:用来配置异常处理,一般没用。
。
。
<global-forwards>
元素
:用来声明全局的转发关系。元素可以有一个或者
N
个
<forward>
元素组成,用于
把一个逻辑名映射到特定的
URL
,通过这种方法
Action
类或者
JSP
页面无需指定
URL
,只要指定逻辑名
称就可以实现请求转发或者重定向。
该元素主要用来声明全局的转发关系,它具有以下四个属性:
1.
className
:和
forward
元素对应的配置类,默认为:
org.apache.struts.action.ActionForward
。可
有可无。
2.
contextRelative
:此项为
true
时,表时
path
属性以"
/
"开头,相对于当前上下文的
URL
,默认为
false
.可有可无。
3.
name
:转发路径的逻辑名.必填。
4.
path
:
转发或重定向的
URL
,
当
contextRelative=false
时,
URL
路径相对于当前应用
(
application
)
,
当为
ture
时,表示
URL
路径相对于当前上下文(
context
)
。
5.
redirect
:当此项为
ture
时,表示执行重定向操作。当此项为
false
时表示转向操作。默认为
false
。
如下所示:
<global-forwards>
<forward name="forms1
″
path="/a.do"/>
<forward name="forms2
″
path="/nb.jsp"/>
<global-forwards>
<action-mapping>
元素:包含一个或者
N
个
<action>
元素,描述了从特定的请求路径到响应的
Action
的映
射。
上述从特定的请求路径到相应的
Action
类的映射。它具有以下几个属性:
1.
attribute
:
设置和
Action
关联的
ActionForm Bean
在
request
和
session
范围内的
key
。
如:
Form Bean
存在于
request
范围内,此项设为
“
myBenas"
,则在
request.getAttribute("myBenas")
就可以返回该
Bean
的实例。
2.
classsName
:和
action
元素对应的配置元素,默认为:
org.apache.struts.action.ActionMapping.
3.
forward
:转发的
URL
路径。
4.
include
:指定包含的
URL
路径。
5.
input
:输入表单的
URL
路径,当表单验证失败时,将把请求转发到该
URL
。
6.
name
:指定和
Action
关联的
Action FormBean
的名字,该名字必须在
Form-Bean
定义过。
7.
path
:指定访问
Action
的路径,以
“
/"
开头,无扩展名。
8.
parameter
:指定
Actgion
的配置参数,在
Action
类的
execute()
方法中,可以调用
ActionMapping
对象的
getParameter()
方法来读取该配置参数。
9.
roles
:
指定允许调用该
Action
的安全角色,
多个角色之间用,
隔开,
在处理请求时,
RequestProcessor
会根据该配置项来决定用户是否有权限调用
Action
权限。
10.
scope
:指定
ActionForm Bean
的存在范围,可选取为
request
和
session
,默认为
session
。
11.
type
:指定
Action
类的完整类名。
12.
unknown
:如果此项为
true
,表示可以处理用户发出的所有无效的
Action URL
,默认为
false
;
13.
validate
:
指定是否要调用
Action FormBean
的
validate
方法,
默认值为
ture.
注:
forward
、
include
、
type
属性只能选中其中一项。
<action path="/search"
type="zxj.okBean"
name="a1"
scope="request"
validate="true"
input="/b.jsp">
<forward name="tig" path="/aa.jsp"/>
</action>
注:此中的
forward
是指局部的转发路径。
global-forwards
表示全局的转发路径。
<
controller
>
元素:用于配置
ActionServlet.buffreSize
指定上载文件的输入缓冲大小,一般
不用。
。
。
<message-resources>
元素:用来配置
Resource Bundle
。
1.
className
:
和
message-resources
元
素
对
应
的
配
置
类
,
默
认
为
org.apache.struts.config.MessageResourcesConfig
。
2.
factory
:
指定消息资源的工厂类,
默认为:
org.apache.struts.util.PropertyMessageResourcesFactory
类。
3.
key
:
指
定
Resource
Bundle
存
放
的
ServletContext
对
象
中
时
采
用
的
属
性
Key
,
默
认
由
Globals.MESSAGES_KEY
定义的字符串常量,只允许一个
Resource Bundle
采用默认的属性
Key
。
4.
null
:指定
MessageSources
类如何处理未知消息的
key
,如果为
true
,则返回空字符串,如果为
false
,则返回相关字串,默认为
false
。
5.
prameter
:指定
MessageSources
的资源文件名,如果为:
a.b.ApplicationResources
,则实际对
应的文件路径为:
WEB-INF/classes/a/b/ApplicationResources.properties
。
如下:
<message-resources null="false" parameter="defaultResource"/>
<message-resources key="num1" null="false" parameter="test"/>
访问为:
<bean:message key="zxj"/>
<bean:message key="zxj" bundle="num1"/>
其中,
zxj
表法,
messagesource
资源文件中的一个字符串。
<plug-in>
元素:用于配置
Struts
插件,配置多应用模块,一般不用。
。