struts.xml详解
1、包含配置
随着应用规模的增加,在struts.xml文件中需要配置的Action数量也大量的增加,导致struts.xml文件过于臃肿。为了解决这样的问题,struts.xml配置文件可以分解成多个配置文件,只需在struts.xml文件中使用include标签引入即可。
<struts>
<include file="struts-part1.xml" />
<include file="struts-part2.xml" />
<include file="struts-part3.xml" />
</struts>
注意:当分解配置文件过多时,可以在src创建一个子包,将分解的配置文件放在子包中。如:
<struts>
include file="xml/struts-part1.xml" />
</struts>
2、常量配置
在struts.xml文件中配置Struts2属性时,使用<constant>标签实现配置常量。<constant>标签中常用的属性有:
name:指定属性或者常量的名称
value:指定相应属性或者常量的值
常用举例:
1)汉字乱码处理
<constant name="struts.i18n.encoding" value="gbk"/>
处理办法:
(a)在jsp文件中将pageEncoding设置为GBK
(b)将<s:form>表单的提交方法设置为post
(c)将<constant>标签添加到struts.xml中
2)国际化资源文件
- <constant name="struts.custom.i18n.resources" value="basename"/>
3)设置Struts2处理的请求后缀,该属性默认值为action
<constant name="struts.action.extension" value="do"/>
4)设置Struts2视图标签默认的主题,默认值为xhtml,变成普通html,设置值为simple
<constant name="struts.ui.theme" value="simple"/>
3、包配置
Struts2的配置文件中,主要的内容包括配置Action和用户自定义的拦截等,当Action和拦截器过多时,需要通过配置包来实现对Action和拦截器进行管理。
配置包时,使用<package>标签实现对包的管理,在<package>标签中常用的属性如下:
name:必须要指定,并且不能出现重名。
extends:必须是另外一个包的name属性,用来表示继承包
namespace:
一般来说,将拦截器和常量配置的内容放在父包中,提供子包去继承,这样子包就具有了父包的拦截器和常量配置。