【配置文件加载顺序】
struts-default.xml --> struts-plugin.xml --> struts.xml
【常用配置】
1.方式一:
通过struts.xml配置文件直接修改常见配置。
(1) 配置编码格式
--属性名
struts.i18n.encoding
--取值
任意有效的字符编码
(2)配置后缀名
--属性名
struts.action.extension
--取值
任意有效的自定义名称
- 说明
===设置默认值的同时,需要设置核心过滤器的映射
===,,表示访问时可以省略后缀名
(3)设置错误提示模式
--属性名
struts.devMode
--值
==true :开发模式,启用错误报告模式
==false :运行模式,不启用错误报告
2.方式二
除直接在struts.xml中修改配置外,也可以通过自定义struts.propertiesp修改常见配置。
【团队协作】
1.问题
团队开发环境下,当多人需要同时配置Action时,总会有人需要等待。造成了工作效率的下降。
2.解决
Struts2的配置文件允许将多个不同Action分别配置到多个配置文件中,然后通过include配置项引入其他配置文件。
3.示例
【struts.xml】
1 <struts> 2 <!-- 3 constant配置 4 配置编码格式(struts.i18n.encoding) 5 web app libraries >> struts2-core >> org.apache.struts >> default.properties 6 设置后缀名(struts.action.extension) 7 设置错误提示模式(struts.devMode) 8 --> 9 <!-- 编码格式设置 --> 10 <constant name="" value="UTF8"></constant> 11 <!-- 设置后缀名 --> 12 <constant name="struts.action.extension" value="terry,action,,"></constant> 13 <!-- 设置错误提示模式 (true:开发模式;false:运行模式)--> 14 <constant name="struts.devMode" value="false"></constant> 15 16 <!-- 17 引入其他配置文件 18 Struts框架允许将Action的配置定义其他文件中,然后引入其配置文件 19 在struts.xml配置文件中只定义公共的常量、变量、设置及文件的引入 20 --> 21 <include file="cn/conf/struts/Conf.xml"></include> 22 </struts>
【conf.xml】
1 <struts> 2 <package name="action" extends="struts-default"> 3 <action name="con" class="cn.hl.action.ConAction"> 4 <result>index.jsp</result> 5 </action> 6 </package> 7 </struts>
说明:
struts.xml配置文件只定义公共配置、常量、变量及文件引入
【Action的配置】
1.概述
Java是通过包管理类的,Struts2也是通过包来管理Action的。
2.包(package)
示例:
1 <!-- 2 Java是通过包管理类的,Struts2也是通过包来管理Action的 3 通过包可以避免Action命名冲突的问题。 4 5 name :包的名称 6 extends :表示继承关系。一般继承于struts-default(顶级包,struts-default.xml中). 7 namespace :命名空间,默认值为"/"。 8 9 注意:设置命名空间后,访问action时需要附加命名空间作为前缀。如: conf/con.action 10 --> 11 <package name="action" extends="struts-default" namespace="/conf"> 12 <action name="con" class="cn.hl.action.ConAction"> 13 <result>index.jsp</result> 14 </action> 15 </package>
3.Action
配置请求处理方法。
1 <package name="action" extends="struts-default" namespace="/conf"> 2 <!-- 3 name :配置Action的请求处理方法的名称,调用时通过该属性值进行调用 4 class :配置请求处理方法所在类全名(包名 + 类名) 5 method :配置请求处理方法的名称。默认值为execute 6 --> 7 <action name="con" class="cn.hl.action.ConAction"> 8 <result>index.jsp</result> 9 </action> 10 11 <action name="add" class="cn.hl.action.ConAction" method="add"> 12 <result>index.jsp</result> 13 </action> 14 <action name="update" class="cn.hl.action.ConAction" method="update"> 15 <result>index.jsp</result> 16 </action> 17 </package>
4.result
配置请求处理的结果。
1 <package name="action" extends="struts-default" namespace="/conf"> 2 <!-- 3 name :配置Action的请求处理方法的名称,调用时通过该属性值进行调用 4 class :配置请求处理方法所在类全名(包名 + 类名) 5 method :配置请求处理方法的名称。默认值为execute 6 --> 7 <action name="con" class="cn.hl.action.ConAction"> 8 <!-- 9 跳转控制 10 name :请求处理结果的名称,其值与对应请求处理方法中return的值相同 11 type :配置结果的处理方式 12 chain :表示请求链。用于从一个Action跳转到另一个Action(请求链)。如:ActionA -》ActionB 13 dispacher :默认值,表示请求转发,相当于Servlet中的请求转发。一般用于将结果发送给jsp页面进行渲染时使用 14 redirect :重定向,可以访问外部资源、jsp页面和Action。访问Action时需要加后缀名 15 redirectAction:跳转Action,访问过程中可以使用后缀名,也可以省略后缀名 16 --> 17 <result name="success" type="chain">index.jsp</result> 18 </action> 19 </package>
5.其他配置
1 <!-- 定义公共的结果集 --> 2 <global-results> 3 <result name="login">/login.jsp</result> 4 </global-results>