1.package
1.1 作用
类似于代码包,区别不同的action,action标签只能内嵌于package标签
1.2.属性
1.2.1 name
name值是package标签的唯一标识(一个文件中的package不能重名),和功能本身无关
1.2.2 extends
值固定为:struts-default
配置该属性后package中配置的类才具有action的功能
1.2.3 namespace
值与action中的name属性一起构成访问路径
2.action
2.1 作用
配置action访问路径
2.2 属性
2.2.1 name
该属性值与package中的namespace一起构成访问路径
同一package内是action标签唯一标识符(同文件不同package可相同)
2.2.2 class
action类的全路径
2.2.3 method
指定action类的具体方法
若不指定,默认执行execute
3.result
3.1 作用
根据action类的不同返回值配置不同路径(嵌套在action内)
标签内即路径
3.2 属性
3.2.1 name
指定action方法的返回值
3.2.2 type
配置到路径的方式(转发[dispatch]或重定向[redirect])
如不配置,默认做转发
3.3 全局页面配置(嵌套在package内)
示例:指定一命名空间内所有返回值为success的action到hello页面
<global-results>
<result name="success">/hello.jsp</result>
</global-results>
*若配置了全局结果页面,也配置了局部结果页面(action内嵌套的result),最终以局部配置为准
4.constant
4.1 作用
常量配置
4.2 属性
4.2.1 name
4.2.3 value
4.3 常用配置
//解决post提交表单的中文乱码问题
<constant name="struts.i18n.encoding" value="UTF-8" />
//struts配置文件修改后系统是否自动重新加载该文件,默认不加载(false)
<constant name="struts.configuration.xml.reload" value="true" />
//开发模式下打开(true),可以打印出更详细日志
<constant name="struts.devMode" value="true" />
/*
*该属性指定处理 MIME-type multipart/form-data文件上传方式
*有三种方式cos、pell 、jakarta
*struts2默认采用第三种方式
*前两种方式,需要去网上下载相应jar包
*/
<constant name="struts.multipart.parser" value="cos" />
<constant name="struts.multipart.parser" value="pell" />
<constant name="struts.multipart.parser" value="jakarta" />
//指定上传文件临时目录,默认使用 javax.servlet.context.tempdir
<constant name="struts.multipart.saveDir" value="/tmpuploadfiles" />
//该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 默认为2M
<constant name="struts.multipart.maxSize" value="2097152" />
5.include
5.1 作用
分模块开发:将另外的单独配置文件引入到核心配置文件中
5.2 属性
file:值为被引入的配置文件路径
5.3 示例
<include file="struts_books.xml"></include> //示例中的struts_books.xml创建在src下(与核心配置文件同目录)
*idea中新建的xml配置文件需要先右上角add __.xml to file set再include,否则文件无法被扫描到