package 作用: 在struts2的配置文件中引入了面向对象思想,使用了分包管理。易于管理动作类。便于模块化开发动作类。 属性: name:包的名称。必须写。且必须唯一。 extends:一般情况下需要继承struts-default包,但不是必须的。不过如果不继承的话,将无法使用struts2提供的核心功能。struts-default.xml中定义着struts-default这个包。而struts-default.xml是在我们的struts.xml加载之前加载。 abstract:把包声明为抽象包,抽象包就是用来被继承的。只要是没有<action>元素的包,就可以声明为抽象包。 namespace:名称空间。 名称空间 + 动作名称 = 访问路 径 packege中的namespace namespace的默认值: a.不写该属性 b.写了该属性,取值是一个"". 注意:默认值不是/ 动作类的搜索顺序: 先找名称空间,再找动作名称。

action 作用: 配置动作用的。 属性: name:动作名称,需要和jsp页面上的url对应。(此处不需要写,也不能写后缀) class:动作类全名。默认的动作类是:com.opensymphony.xwork2.ActionSupport 是在struts-default.xml中定义的 method:动作类中的方法名称。默认是public String execute(){} 要求: 1.public的 2.返回值必须是String 3.没有参数 关于动作类的定义方式: 方式一:动作类就是一个POJO,非常简单的javabean。 方式二:动作类实现com.opensymphony.xwork2.Action接口。 常量:给动作方法返回值用的。用常量可以使你的应用规范和统一。 常量变量名 对应的值 说明 SUCCESS success 动作方法执行一切OK ERROR error 动作方法执行时遇到了异常 INPUT input 回显 LOGIN login 一般转向登陆页面 NONE none 不转向任何的视图 方式三:动作类继承com.opensymphony.xwork2.ActionSupport 推荐使用 通配符的配置:(***使用) 原始的基本配置方式 <package name="user" extends="struts-default"> <action name="addUser" class="cn.itcast.web.action.UserAction" method="addUser"> <result name="success">/addUsersuccess.jsp</result> </action> <action name="updateUser" class="cn.itcast.web.action.UserAction" method="updateUser"> <result name="success">/updateUsersuccess.jsp</result> </action> <action name="deleteUser" class="cn.itcast.web.action.UserAction" method="deleteUser"> <result name="success">/deleteUsersuccess.jsp</result> </action> <action name="findUser" class="cn.itcast.web.action.UserAction" method="findUser"> <result name="success">/findUsersuccess.jsp</result> </action> </package> -->

使用通配符进行配置 
	 *表示的就是通配符。
	 {1}表示的是通配符第一个出现的位置

<package name="user" extends="struts-default">
	<action name="*" class="cn.itcast.web.action.UserAction" method="{1}">
		<result name="success">/{1}success.jsp</result>
	</action>
</package> 

通配符的进阶使用方式 
<package name="user" extends="struts-default">
	<action name="*_*" class="cn.itcast.web.action.{2}Action" method="{1}{2}">
		<result name="success">/{1}{2}success.jsp</result>
	</action>
</package>

result

作用:
为动作指定结果视图

属性: name:逻辑视图的名称,对应着动作方法的返回值。默认值是success。 type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher。 type属性的常用取值: dispatcher:(默认值) 使用请求转发,转向一个页面。 redirect: 使用重定向,转向一个页面。 redirectAction: 重定向到另外一个动作。注意:使用的是重定向。 stream: 文件下载的结果类型 全局视图和局部视图: 局部视图 只能当前动作使用 <package name="p1" extends="struts-default"> <action name="hello" class="cn.itcast.web.action.HelloAction" method="sayHello"> 局部视图 <result name="success">/success.jsp</result> </action> </package> 全局视图 所有动作都可以使用 <package name="myDefault" extends="struts-default" abstract="true"> 配置全局结果视图 注意:当有局部结果视图和全局结果视图时,先找局部的,如果没有局部的,找全局的 <global-results> <result name="success" type="redirect">/success.jsp</result> <result name="login" type="redirect">/login.jsp</result> </global-results> </package>

注意:优先级问题,先局部后全局。