Struts2配置
- 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标签
- package于action的关系就像是包和类的关系,不同的模块不同的package,每个package下可以有很多action
- name属性:包的名称在同一个项目不重复即可
- extends属性:继承哪个package默认是struts-default它当中定义了很多结果类型和拦截器,只有填上它才有后面的一些类型自动转化等功能
- namespace属性:它和包名共同决定了访问路径,当它是空时只要满足最后的包名就能访问到当前包,不为空则要写上namespace与包名共同构成的别url才能访问到
- abstract属性:开启后当前包就不能被使用,只能用来被继承
action标签
- 首先就是配置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下去找。最后返回指定的页面