现在的位置: 首页 > 综合 > 正文

webwork配置之xwork.xml

2013年09月07日 ⁄ 综合 ⁄ 共 2886字 ⁄ 字号 评论关闭

xwork.xml相当于 struts1里面的struts-config.xml 是配置具体的action用的

        下面是caveatemptor的xwork.xml的配置

<xwork>
    <include file="webwork-default.xml"/>
    <include file="config-browser.xml"/>

    <package name="default" extends="webwork-default">
        <interceptors>
            <interceptor name="auth" class="org.hibernate.auction.web.interceptors.AuthenticationInterceptor"/>
        </interceptors>

        <global-results>
            <result name="login" type="redirect">/login!default.action</result>
            <result name="invalid.token">/invalidToken.jsp</result>
        </global-results>
    </package>

    <include file="xwork-public.xml"/>

    <include file="xwork-secure.xml"/>
</xwork>

<include file="webwork-default.xml"/>
是包含webwork的默认配置 webwork为了 <include> 增加了模块化配置这一理念  不同的模块我们可以放在不同的配置文件中 最后用

include包含到xwork.xml中

     如caveatemptor的xwork.xml中就包含

    <include file="webwork-default.xml"/>
    <include file="config-browser.xml"/>

    <include file="xwork-public.xml"/>

    <include file="xwork-secure.xml"/>

    四个文件

    其中webwork-default.xml 是包含webwork的默认配置 webwork-default.xml中包含了webwork中 一些result-types

    interceptors  以及interceptors-stack的定义 此处包含进来是为了<package name="default" extends="webwork-      default"> default包 继承 webwork-default.xml中的一些定义  那么 在default包中就不需要重新定义了 而是直接应用就可以了  

    一般的项目中都会包含webwork-default.xml  然后在自己定义的包中 继承webwork-default(这是webwork-default.xml中的一个包名具体看查看源代码)

    然后是package ,package中包含了一些action

   <interceptors>
            <interceptor name="auth" class="org.hibernate.auction.web.interceptors.AuthenticationInterceptor"/>
        </interceptors>

    除了调用webwork原有的拦截器外 可以自己定义连接器

        <global-results>
            <result name="login" type="redirect">/login!default.action</result>
            <result name="invalid.token">/invalidToken.jsp</result>
        </global-results>
       顾名思义 这是一个公共的result定义  在包内的action均可以 转向这两个result  即所有的action代码中 均可 return "login"

      xwork-public.xml和xwork-secure.xml均继承了default这个package 所以他们中的所有action 都可以调用(配置)default包

     中的 inteceptor和 result

 

 

 

      下面单独来说说 各个元素的配置

       <action name="search" class="org.hibernate.auction.web.actions.Search">
            <interceptor-ref name="default"/>
            <interceptor-ref name="execAndWait"/>
            <result name="wait">search-wait.jsp</result>
            <result name="success" type="redirect">moreResults.action</result>
        </action>

      与struts1大致相同的 在此不多赘述   <interceptor-ref name="default"/>
            <interceptor-ref name="execAndWait"/>
      在执行这个action 之前 会执行这两个 拦截器

       拦截器除了在这里配置之外 还可以在package中 <default-interceptor-ref name="default"/>这样配置

      当action中配置了拦截器时 只执行action中的拦截器 否在 执行  <default-interceptor-ref 》

      result是此action中可以返回的页面表示

  还有<global-results>
            <result name="login" type="redirect">/login!default.action</result>
            <result name="invalid.token">/invalidToken.jsp</result>
        </global-results>
公共的

      以name.action来说明 访问 出action类中 excute方法之外的方法 如同一个模块的增删改查如果定义在不同的action中 就显得有些多 有些杂

      webwork提供了 完美的解决

      只需访问 name!method.action  就可以 执行name.action 中的method这个方法

    

 

  

抱歉!评论已关闭.