Struts2配置

2019-09-19 14:52:51 浏览数 (1)

Struts2配置

  1. Struts2配置
  2. 结果页配置

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下去找。最后返回指定的页面

0 人点赞