Struts2常量大部分在默認(rèn)的配置文件中已經(jīng)配置好。但可以根據(jù)需求和開發(fā)的不同,對這些常量值進(jìn)行修改。
Struts2支持的常量非常多,在struts-core-2.3.24.jar下的org.apache.struts2路徑下有一個(gè)default.properties文件,該文件為Struts2的常量指定了默認(rèn)值。位置如下:
這里寫圖片描述
在Struts2常量配置修改,主要通過以下三種方式:
- struts.xml:使用constant元素配置常量
- struts.properties:文件中配置常量
- web.xml:通過init-param元素配置常量
在struts.xml中通過<constant>元素配置常量
這是最常用的方式,通過constant原生配置常量時(shí),需要指定兩個(gè)必填的屬性:
- name:常量名
- value:常量值
示例如下:
<!-- 設(shè)置默認(rèn)編碼集為UTF-8 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 是否使用開發(fā)者模式 -->
<constant name="struts.devMode" value="true"/>
其實(shí),在struts.properties文件中配置的常量都可以在struts.xml文件中使用constant元素來配置,只不過是加載優(yōu)先級的不同。
在struts.properties文件中配置常量
struts.properties是一個(gè)標(biāo)準(zhǔn)的properties,格式為key-value,分別代表常量名和常量值。
在src目錄下,新建struts.properties文件,示例如下:
# 設(shè)置默認(rèn)編碼集
struts.i18n.encoding=UTF8
### 設(shè)置請求action的擴(kuò)展名為do或者無
struts.action.extension=action,,
### 設(shè)置開發(fā)者模式
struts.devMode=false
### 設(shè)置不開啟動(dòng)態(tài)方法調(diào)用
struts.enable.DynamicMethonInvocation=false
在web.xml文件中通過初始化參數(shù)配置常量
在web.xml文件配置核心過濾器StrutsPrepareAndExecuteFilter時(shí),通過初始化參數(shù)配置常量。在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配置常量時(shí),init-param標(biāo)簽必須放在filter下。