Struts2的package,action,result元素的配置

package元素:是struts.xml根元素(strtus)的子元素. 和java中的package没有一点关系.
    仅仅是为了统一管理多个action元素.
格式为:
<package name="" extends="" namespace="" abstract="true|false">
可以一个模块分出一个<package>元素.
常用的属性:
  name:      表示当前<package>元素的名称,多个<package>元素的name不能相同.oaPkg/crmPkg
  extends:   自定义的<package>元素必须继承于struts-default包或者struts-defalt的子包.
             如此一来,当前<package>元素就可以拥有父package的所有配置.
  namespace: 命名空间,和action的name共同决定了一个action的访问路径.
  abstract:  表示当前<package>元素是否是抽象的.
             如果为true,那么当前<package>就不能定义action元素,只能用于被其他<package>所继承.
-----------------------------------------------------------------------
开发中的最佳实践:
多个package共同的配置信息:
<package name="basePkg" extends="struts-default" namespace="/" abstract="true">
     <!--该package的拦截器配置--->
</package>

***********************************************************************************************

action元素:是<package>元素的子元素,用于配置Action类.
语法:<action name="" class="" method="">
常用的属性:
  name:   action的名称,该名称和当前action所在package的namespace共同决定了访问路径.
        访问Action的格式:http://ip:port/contextPath/namsspace/actionName[.action]
        注意:action名称没有/,在同一个<package>不能相同.
  class:  Action类的全限定名,表示把哪一个Action类交给Strtus2框架来管理.
          class的默认值:com.opensymphony.xwork2.ActionSupport.
  method: 当前action需要执行哪一个方法,注意:该方法必须在class对应的类中.

          method的默认值:execute.

*************************************************************************************************

result元素:是<action/>元素的子元素,表示结果视图(action执行完毕跳转到哪里去).
语法格式:<result name="" type=""></result>
result元素的配置:
    name属性: 唯一,表示逻辑视图名称,该名称就是action方法的返回结果.默认值:success.
    type属性: 表示资源的跳转方式(请求转发/URL重定向),阅读struts-default包.默认:dispatcher
    文本内容: 表示需要跳转资源的路径(从webapp下开始寻找).
result元素的type属性的常用值:
   dispatcher:     请求转发:(Action请求转发到JSP),默认的.
   chain:          请求转发:(Action请求转发到Action).
   redirect:       URL重定向:(Action重定向到JSP).
   redirectAction: URL重定向:(Action重定向到Action).
   stream:         文件下载使用,输入流.
-------------------------------------------------
result元素分类:
  1):局部的结果视图:配置在<action>元素里面,就只能当前Action可以跳转的.
  2):全局的结果视图:配置在<package>元素中的<global-results>元素里面,当前<package>的Action都可以跳转进去.
      先从当前Action中去找指定名字的result,找到就跳转,找不到,再找全局的result,找到跳转,找不到,就报404 错误.

猜你喜欢

转载自blog.csdn.net/ming13849012515/article/details/80612465