一、全局结果页面
(1)解释
如果有多个action,方法的返回值相同,到达的页面也相同,这个时候用全局结果配置
image.png
(2)、全局结果页面的配置
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="false" value="struts.enable.DynamicMethodInvocation"/>
<constant value="true" name="struts.devMode"/>
<package name="methoddemo" extends="struts-default" namespace="/">
<!-- 全局结果页面配置 -->
<global-results>
<result name="hello">/HelloWorld.jsp</result>
</global-results>
<action name="hello1" class="cn.doudou.action.HelloAction">
</action>
<action name="hello2" class="cn.doudou.action.HelloAction1">
</action>
</package>
</struts>
HelloAction
package cn.doudou.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("hello1");
return "hello";
}
}
HelloAction1
package cn.doudou.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction1 extends ActionSupport {
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("hello2");
return "hello";
}
}
这样配置访问hello1和hello二都会跳转到HelloWorld.jsp页面
(3)、运行结果
image.png image.pngimage.png
二、局部结果页面
(1)、局部变量的配置
image.png(2)、注意
即配置全局又配置局部,以局部配置为准
(3)、演示结果
即配置全局结果页面有配置局部结果页面
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="false" value="struts.enable.DynamicMethodInvocation"/>
<constant value="true" name="struts.devMode"/>
<package name="methoddemo" extends="struts-default" namespace="/">
<!-- 配置全局结果页面 -->
<global-results>
<result name="hello">/HelloWorld.jsp</result>
</global-results>
<action name="hello1" class="cn.doudou.action.HelloAction">
</action>
<action name="hello2" class="cn.doudou.action.HelloAction1">
<!-- 配置全局部果页面 -->
<result name="hello">/HelloWorld1.jsp</result>
</action>
</package>
</struts>
访问跳转到局部结果页面
image.png
三、result标签的type属性
result标签除了name属性还有type属性
(1)、含义
type属性值:
配置到结果页面
- 默认值:做转发操作,值是dispatcher
- 重定向:redirect
配置到其他的action
- 转发向到action:chain(一般不用)
- 重定向到action: redirectAction
(2)、配置到结果页面代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="false" value="struts.enable.DynamicMethodInvocation"/>
<constant value="true" name="struts.devMode"/>
<package name="methoddemo" extends="struts-default" namespace="/">
<action name="hello1" class="cn.doudou.action.HelloAction">
<!-- 配置全局部果页面 请求转发 -->
<result name="hello" type="dispatcher">/HelloWorld.jsp</result>
</action>
<action name="hello2" class="cn.doudou.action.HelloAction1">
<!-- 配置全局部果页面 重定向 -->
<result name="hello" type="redirect">/HelloWorld1.jsp</result>
</action>
</package>
</struts>
(3)、配置到结果页面运行结果
image.png请求转发
image.png
重定向
image.png
(4)、配置到新的action代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="false" value="struts.enable.DynamicMethodInvocation"/>
<constant value="true" name="struts.devMode"/>
<package name="methoddemo" extends="struts-default" namespace="/">
<action name="hello1" class="cn.doudou.action.HelloAction">
<!-- 转发到action -->
<result name="hello" type="chain">hello3</result>
</action>
<action name="hello2" class="cn.doudou.action.HelloAction1">
<!-- 重定向到action -->
<result name="hello" type="redirectAction">hello3</result>
</action>
<action name="hello3" class="cn.doudou.action.HelloAction2">
</action>
</package>
</struts>
(5)配置到新的action运行结果
页面
image.png
转发到hello3.action
image.png
执行了两个action
image.png
重定向到hello3.action
image.png
执行两个action
image.png
网友评论