全局结果页面:
1、如果两个action的返回值是一样的,并且需要返回同一个页面的时候,我们通常是这样的配置的:
<action name="book" class="com.xuman.bookAction">
<result name="success">/hello.jsp</result>
</action>
<action name="orders" class="com.xuman.OrdersAction">
<result name="success">/hello.jsp</result>
</action>
这样配置没任何问题,这里只有两个action的配置,可能不会觉得麻烦,但是如果需要配置很多个呢,而且返回值和返回页面都是一样的,这样就会造成代码的重复性,那么我们一般用下面的方法来解决代码的重复使用,做到代码的简洁:
<!-- 全局结果页面的配置 -->
<global-results>
<result name="success">/hello.jsp</result>
</global-results>
<action name="book" class="com.xuman.bookAction">
</action>
<action name="orders" class="com.xuman.OrdersAction">
</action>
两种方法的运行结果是一样的
局部页面配置
<action name="book" class="com.xuman.bookAction">
<result name="success">/hello.jsp</result>
</action>
这个就是局部配置,当一个Struts.xml里面既有全局页面配置,又有局部页面配置时,一般以局部页面配置为准,为了效果明显,将Struts.xml的配置如下:
<!-- 全局结果页面的配置 -->
<global-results>
<result name="success">/hello.jsp</result>
</global-results>
<action name="book" class="com.xuman.bookAction">
<result name="success">/world.jsp</result>
</action>
<action name="orders" class="com.xuman.OrdersAction">
<!-- <result name="success">/hello.jsp</result> -->
</action>
返回值是一样的,但是让他们返回不同的页面,我们来做运行如下:
我们会发现返回值是不一样的,因为我的orders用的是全局变量,book用的是局部变量,虽然我们同时定义了全局变量和局部变量,但是还是以局部变量为主。