多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # struts.xml配置 **package配置** 1.name属性 作用:定义一个包的名称,它必须唯一。 2.namespace属性 作用:主要是与action标签的name属性联合使用来确定一个action 的访问路径 3.extends属性 作用:指定继承自哪个包。一般值是strtus-default strtus-default包是在strtus-default.xml文件中声明的。 4.abstruct属性 它代表当前包是一个抽象的,主要是用于被继承 **action配置** 1.name属性 作用:主要是与package的namespace联合使用来确定一个action的访问路 径 2.class属性 作用:用于指示当前的action类 3.method属性 作用:用于指示当前的action类中的哪个方法执行 **result配置** 它主要是用于指示结果视图 1.name属性 作用是与action类的method方法的返回值进行匹配,来确定跳转路径 2.type属性 作用是用于指定跳转方式 **扩展** 关于action配置中的class与method的默认值以及result中的name与type 默认值问题 ![](https://box.kancloud.cn/c5a5e08b97426031bc3defa68f25120d_597x126.png) 它的作用就是当一个请求来时,如果查找不到指定的class及对应的method就会执行 ActionSupport类中的execute方法。 在这个类的execute方法中默认返回的是”success” 也就是说,result的name属性默认值是success,默认的跳转方式是请求转发 dispatcher ![](https://box.kancloud.cn/f765612dbaa514b32014eea9f1eb663e_937x213.png) ![](https://box.kancloud.cn/07f8f5ae5c6be15806b83cd356eeec44_1241x194.png) ![](https://box.kancloud.cn/afe8285e5d6923559860293f37206ed3_1127x237.png) ![](https://box.kancloud.cn/7abc8649b74c1ec611c08362c515ea9c_1079x80.png) # Struts2配置文件加载顺序 ![](https://box.kancloud.cn/c28f4c2f10682e0d43cc1416be598060_443x129.png) 第一个加载的是default.properties文件 位置:strtus2-core.jar包 org.apache.struts2包下 作用:主要是声明了struts2框架的常量 第二个加载的是一批配置文件 Strtus-default.xml 位置:struts2-corl.jar 作用:声明了interceptor result bean Strtus-plugin.xml 位置:在strtus2的插件包中 作用:主要用于插件的配置声明 Strtus.xml 位置:在我们自己的工程中 作用:用于我们自己工程使用strtus2框架的配置 第三个加载的是自定义的strtus.properties 位置:都是在自己工程的src下 作用:定制常量 第四自定义配置提供 第五加载的是web.xml配置文件 主要是加载strtus2框架在web.xml文件中的相关配置 第六 bean相关配置 总结 ![](https://box.kancloud.cn/0bb2257d29d92cd4a52d0acdac3a69a4_393x135.png) # 常量配置 default.properties文件中定义了struts2框架常用常量 . ![](https://box.kancloud.cn/dfb7838b3dd3a02f59471ac7f5742063_216x181.png) 问题:我们怎样可以定义常量 ? 1. 可以在src下创建一个strtus.properties配置文件 2. 可以在web.xml文件中配置 3. 可以直接在strtus.xml文件中定义常量 (推荐) ![](https://box.kancloud.cn/445efd08300ad0ee61df40a9a75e66e1_612x99.png) 注意:后加载的配置文件中的常量会将先加载的常量覆盖 ![](https://box.kancloud.cn/dfb2881c789f938663134ca490f9d526_531x217.png) # 默认配置 ![](https://box.kancloud.cn/ba7c82dc8359df6245417818659fe505_802x265.png) # 配置文件 struts.xml ~~~ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- i18n:国际化. 解决post提交乱码 --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- 指定反问action时的后缀名 http://localhost:8080/w1/hello/HelloAction.do --> <constant name="struts.action.extension" value="action"></constant> <!-- 指定struts2是否以开发模式运行 1.热加载主配置.(不需要重启即可生效) 2.提供更多错误信息输出,方便开发时的调试 --> <constant name="struts.devMode" value="true"></constant> <!-- package:将Action配置封装.就是可以在Package中配置很多action. name属性: 给包起个名字,起到标识作用.随便起.不能其他包名重复. namespace属性:给action的访问路径中定义一个命名空间 extends属性: 继承一个 指定包 abstract属性:包是否为抽象的; 标识性属性.标识该包不能独立运行.专门被继承 --> <package name="hello" namespace="/hello" extends="struts-default" > <!-- action元素:配置action类 name属性: 决定了Action访问资源名. class属性: action的完整类名 method属性: 指定调用Action中的哪个方法来处理请求 --> <action name="HelloAction" class="domain.HelloAction" method="hello" > <!-- result元素:结果配置 name属性: 标识结果处理的名称.与action方法的返回值对应. type属性: 指定调用哪一个result类来处理结果,默认使用转发. 标签体:填写页面的相对路径 --> <result name="success" type="dispatcher" >/hello.jsp</result> </action> </package> <!-- 引入其他struts配置文件 --> <!-- <include file="cn/itheima/b_dynamic/struts.xml"></include> <include file="cn/itheima/c_default/struts.xml"></include> --> </struts> ~~~