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

多个Action及多个package共享一个视图–全局result配置 J2EE开发各类资源下载清单,  史上最全IT资源,个人收藏总结!

2018年01月18日 ⁄ 综合 ⁄ 共 1148字 ⁄ 字号 评论关闭

J2EE开发各类资源下载清单,  史上最全IT资源,个人收藏总结!

当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能:
<package name="package1" >
    <global-results>
        <result name="message">/message.jsp</result>

    </global-results>

   <action name="action1"></action>

   <action name="action2"></action>

</package>

这时,package1包下的action1和action2对应的Action类都可以访问message试图。但是这里的<global-result>中的<result>只能在同一个package下共享,如果想在不同package之间共享,则可以用一个package A继承另一个package B,则package A可以使用package B中定义的全局result和<action>,当然如果在package
A中可以覆写父包B中的<action>或<result>

 如:<package name="itstar" namespace="/student" extends="struts-default">
         <global-results>
             <result type="redirect" name="success">/success.jsp</result>
        </global-results>
    </package>   
   <package name="itcast" namespace="/test" extends="itstar">
      <action name="delete" class="">
      </action>
   </package>

   这个时候,在浏览器上输入:http://localhost:8080/test/delete,则可以跳转至 ”/success.jsp“页面。

   这里<action name="delete">中没有写<result>,但是<action>和<result>中属性缺省值为:

    1>如果没有为action指定class或为空串,默认是com.opensymphony.xwork2.ActionSupport.

    2>如果没有为action指定method或为空串,默认执行action中的execute() 方法。

    3>如果没有指定result的name属性或为空串,默认值为success。

抱歉!评论已关闭.