Struts2常量大部分在默认的配置文件中已经配置好。但可以根据需求和开发的不同,对这些常量值进行修改。
Struts2支持的常量非常多,在struts-core-2.3.24.jar
下的org.apache.struts2
路径下有一个default.properties
文件,该文件为Struts2的常量指定了默认值。位置如下:
在Struts2常量配置修改,主要通过以下三种方式:
- struts.xml:使用constant元素配置常量
- struts.properties:文件中配置常量
- web.xml:通过init-param元素配置常量
在struts.xml
中通过<constant>
元素配置常量
这是最常用的方式,通过constant
原生配置常量时,需要指定两个必填的属性:
- name:常量名
- value:常量值
示例如下:
<!-- 设置默认编码集为UTF-8 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 是否使用开发者模式 -->
<constant name="struts.devMode" value="true"/>
其实,在struts.properties
文件中配置的常量都可以在struts.xml
文件中使用constant
元素来配置,只不过是加载优先级的不同。
在struts.properties
文件中配置常量
struts.properties
是一个标准的properties
,格式为key-value
,分别代表常量名和常量值。
在src
目录下,新建struts.properties
文件,示例如下:
# 设置默认编码集
struts.i18n.encoding=UTF8
### 设置请求action的扩展名为do或者无
struts.action.extension=action,,
### 设置开发者模式
struts.devMode=false
### 设置不开启动态方法调用
struts.enable.DynamicMethonInvocation=false
在web.xml
文件中通过初始化参数配置常量
在web.xml
文件配置核心过滤器StrutsPrepareAndExecuteFilter
时,通过初始化参数配置常量。在filter
元素中的init-param
子元素指定,示例如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
需要注意的是,在web.xml
配置常量时,init-param
标签必须放在filter
下。