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)先級(jí)的不同分飞。
在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
下冠场。