Struts2配置
1
Struts2配置
配置文件加载顺序
Struts2中有很多配置文件可以去配置常量,对同一个量在不同配置文件都配置了,那么生效的肯定是最后加载的,因此需要知道配置文件的加载顺序
1.前端控制器(过滤器)类的初始化方法
2.得到dispater的initDispatcher方法
3.初始化dispater
可以得出配置文件加载顺序
init_DefaultProperties() | default.properties |
---|---|
init_TraditionalXmlConfigurations(); | struts-default.xmlstruts-plugin.xmlstruts.xml |
init_LegacyStrutsProperties(); | struts.properties |
init_CustomConfigurationProviders(); | 加载配置提供类 |
init_FilterInitParameters() ; | 加载web.xml中过滤器初始化参数 |
init_AliasStandardObjects() ; | 加载Bean对象 |
常用的配置文件加载顺序(从上往下)
default.properties
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
struts.xml
根元素struts
package标签
action标签
name | 与namespace共同决定访问路径 |
---|---|
class | Action类的全路径 |
method | 执行Action中的哪个方法的方法名,默认值execute |
converter | 用来自定义类型转换器,一般不设置,内部提供的转换器已经够用 |
常量配置
在在default.properties有很多常量的配置
(截取一段)
比如有个常量struts.i18n.encoding=UTF-8
在Struts2中post请求的中文乱码问题不用再去在代码中设置
一些时候这些常量的值我们需要修改,但是在default.properties中设置的常量我们通常不能去直接修改
我们去修改有三种方式:struts.xml、struts.properties、web.xml
一般都是使用struts.xml所以不会单独再去建struts.properties。
struts.xml中修改
通过constant标签,name和value则是default.properties的等号两边
web.xml中修改
web.xml这些常量配置在过滤器中param-name中为常量名,para-value想要设的值,注意加载顺序
外部导入include
可以通过include标签去导入其他配置文件内容,这样就不用都写着struts.xml中而是各写各的最后通过include放到struts.xml中
2
结果页配置
有的请求需要返回页面时,就可以配置结果页
请求访问到action类后,得到返回字符串返回值就会到当前的action标签去找有没有name匹配的result,没用就会到全局results下去找。最后返回指定的页面