【Struts2】03 struts.xml 分析
1、Package标签
类似于Java的包概念,用于区分不同的Action,一个Package标签中可以配置N个Action标签
属性:
- name属性
和功能无任何关系,用于区分多个Package标签,多个Package标签的name属性值不允许相同
- extends属性
和Java的继承是一个意思,属性值固定为struts-default,在该Package标签配置的类具有Action功能
- namespace属性
命名空间,该属性的值和name属性的值构成了访问路径,该属性默认值就是 [ / ]
如果就是根路径,可不写该属性
2、Action标签
配置action访问的路径,和指定的资源
属性:
- name属性
与Package标签的namespace属性的值合并在一起构成URL地址名称,
同一个Package标签下的多个Action标签的此属性不允许相同
- class属性
表示所属的资源类,值为类的全限定名,供反射使用
- method属性
表示所访问的类的实例方法,默认值是execute,也就是可以不写此属性
如果是其他方法则必须要声明此属性,并且指定对应的方法名称
例如:
public String add(){ return "aaa"; }
则Action的配置为:
3、Result标签:
根据action标签的返回值,跳转到指定的不同的资源中
属性:
name属性
与方法的返回值一致,这样能跳转标签的文本值
type属性
以什么处理方式来访问指定的资源
默认是转发,也可以配置重定向
dispatcher 转发
redirect 重定向
4、常量标签:
配置或者修改Struts2的默认常量
另外两种配置方式是使用 struts.properties 或者是 web.xml
Struts2的常量介绍:
表单提交到Action中,action可以获取表单的参数信息
表单的数据使用了POST请求方式提交,服务器接受会出现乱码情况
Struts2在这里封装了POST请求提交的乱码处理
struts.i18n.encoding=UTF-8
二、多配置合并:
例如Struts文件配置的action过多时,可以进行分类,或者是多人开发的场景
文件允许多个分开编写
然后在struts.xml使用包含标签导入即可: