1. 可以在Struts2框架中的哪些配置文件中配置常量?
* struts.xml(必须要掌握,开发中基本上就在该配置文件中编写常量)
* <constant name="key" value="value"></constant>
* web.xml
* 在StrutsPrepareAndExecuteFilter配置文件中配置初始化参数
* 注意:后加载的配置的文件的常量会覆盖之前加载的常量!!
2. 需要大家了解的常量
* struts.i18n.encoding=UTF-8 -- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法
* struts.action.extension=action,, -- 该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开
* struts.serve.static.browserCache=true -- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭
* struts.configuration.xml.reload=false -- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用)
* struts.devMode = false -- 开发模式下使用,这样可以打印出更详细的错误信息
举例:
上图的常量表示的是,我们写请求的时候,后缀名为action。有两个逗号,逗号中间为空,表示后缀名也可以不写。
如果我们想把后缀名改了,就去struts.xml里面改吧
struts.xml在default.properties之后加载,它会覆盖default.properties里面的常量。
然后,我们去web.xml里面配置一个相同的常量,看看效果:
说明,struts.xml里的do,,无效了。修改请求的后缀:
证明了,web.xml里面的<init-param>生效了。
但是,在开发中我们一般不会到web.xml里面去配置<init-param>,而是在struts.xml里面配置<constant name="" value=""></constant>