struts2中常用Result类型的用法
来源:互联网 发布:喷淋塔计算软件 编辑:程序博客网 时间:2024/05/16 05:42
、dispatcher
(1)为缺省的result类型,一般情况下我们在struts.xml会这么写:
<result name="success">/main.jsp</result>
以上写法使用了两个默认,其完整的写法为:
# <result name="success" type="dispatcher">
# <param name="location">/maini.jsp</param>
# </result>
第一个默认:type="dispatcher";第二个默认:设置的为location参数,location只能是页面,不能是另一个action(可用type="chain"解决)。
(2)实现方式
从doExecute方法看出,有三个出口(finalLocation为要跳转的地址):
pageContext.include(finalLocation);
dispatcher.forward(request, response); (dispatcher是根据finalLocation创建的)
dispatcher.include(request, response);
而我们知道,forward与include都是转发到context内部的资源。
二、redirect
(1)可以重定向到一个页面,另一个action或一个网址。
# <result name="success" type="redirect">aaa.jsp</result>
# <result name="success" type="redirect">bbb.action</result>
# <result name="success" type="redirect">www.baidu.com</result>
(2)实现方式:
查看doExecute方法,只有一个出口:
response.sendRedirect(finalLocation);
sendRedirect是重定向,是重新产生一个HTTP请求到服务器,故重定向后其原来所在的action上下文就不可用了。
三、chain
(1)主要用于把相关的几个action连接起来,共同完成一个功能。
# <action name="step1" class="test.Step1Action">
# <result name="success" type="chain">step2.action</result>
# </action>
#
# <action name="step2" class="test.Step2Action">
# <result name="success">finish.jsp</result>
# </action>
(2)实现方式:
查看execute()方法,主要思想如下:
// 根据Action名称finalActionName及要调用的方法finalMethodName来new一个代理对象proxy,并执行之
# proxy = actionProxyFactory.createActionProxy(finalNamespace,
# finalActionName, finalMethodName, extraContext);
# proxy.execute();
(3)多个action间数据的传递
主要有两种方式:
1。由于处于chain中的action属于同一个http请求,共享一个ActionContext,故可以在上下文中获取,在页面上可以直接使用。手动获取的方法如下:
# HttpServletRequest request = ServletActionContext.getRequest();
# String s=(String)request.getAttribute("propName");
2。实现ModelDriven接口
在Step1Action中,加入getModel:
# public Object getModel() {
# return message;
# }
在Step2Action中,加入setModel:
# public void setModel(Object o){
# System.out.println("message is:"+o);
# }
注意,setModel的调用先于execute()方法后于构造方法。
(1)为缺省的result类型,一般情况下我们在struts.xml会这么写:
<result name="success">/main.jsp</result>
以上写法使用了两个默认,其完整的写法为:
# <result name="success" type="dispatcher">
# <param name="location">/maini.jsp</param>
# </result>
第一个默认:type="dispatcher";第二个默认:设置的为location参数,location只能是页面,不能是另一个action(可用type="chain"解决)。
(2)实现方式
从doExecute方法看出,有三个出口(finalLocation为要跳转的地址):
pageContext.include(finalLocation);
dispatcher.forward(request, response); (dispatcher是根据finalLocation创建的)
dispatcher.include(request, response);
而我们知道,forward与include都是转发到context内部的资源。
二、redirect
(1)可以重定向到一个页面,另一个action或一个网址。
# <result name="success" type="redirect">aaa.jsp</result>
# <result name="success" type="redirect">bbb.action</result>
# <result name="success" type="redirect">www.baidu.com</result>
(2)实现方式:
查看doExecute方法,只有一个出口:
response.sendRedirect(finalLocation);
sendRedirect是重定向,是重新产生一个HTTP请求到服务器,故重定向后其原来所在的action上下文就不可用了。
三、chain
(1)主要用于把相关的几个action连接起来,共同完成一个功能。
# <action name="step1" class="test.Step1Action">
# <result name="success" type="chain">step2.action</result>
# </action>
#
# <action name="step2" class="test.Step2Action">
# <result name="success">finish.jsp</result>
# </action>
(2)实现方式:
查看execute()方法,主要思想如下:
// 根据Action名称finalActionName及要调用的方法finalMethodName来new一个代理对象proxy,并执行之
# proxy = actionProxyFactory.createActionProxy(finalNamespace,
# finalActionName, finalMethodName, extraContext);
# proxy.execute();
(3)多个action间数据的传递
主要有两种方式:
1。由于处于chain中的action属于同一个http请求,共享一个ActionContext,故可以在上下文中获取,在页面上可以直接使用。手动获取的方法如下:
# HttpServletRequest request = ServletActionContext.getRequest();
# String s=(String)request.getAttribute("propName");
2。实现ModelDriven接口
在Step1Action中,加入getModel:
# public Object getModel() {
# return message;
# }
在Step2Action中,加入setModel:
# public void setModel(Object o){
# System.out.println("message is:"+o);
# }
注意,setModel的调用先于execute()方法后于构造方法。
- struts2中常用Result类型的用法
- struts2中常用Result类型的用法
- struts2中常用Result类型的用法
- struts2中常用Result类型的用法
- struts2中常用Result类型的用法
- struts2中常用Result类型(type)的用法
- struts2中常用Result类型type的用法
- struts2中常用Result类型type的用法
- struts2常见的result类型的用法
- struts2 Result类型和对应的用法
- Struts2中result的类型:chain
- struts2中result的type跳转类型
- struts2中result的type跳转类型
- struts2中result的type跳转类型
- struts2配置文件中result的type类型
- Struts2配置文件中result的type类型
- struts2常用result类型详解
- struts2的Result类型
- 硬盘与硬件管理笔记---鸟哥的私房菜
- eclipse(jee) 、 tomcat7 开发 servlet
- 引用 JAVA中浅复制与深复制
- 使用存储过程用execute immediateSQL报ORA-01031错误问题的解决
- Hyginex:利用腕带震动提醒医护人员及时洗手
- struts2中常用Result类型的用法
- Visual Studio 用正则表达式查找替换
- 常用的CSS 属性
- C#字符串
- hdoj 3681 Prison Break
- 图书封面的故事之——“巴别塔”选自《七周七语言:理解多种编程范型》
- XMLHttpRequest 对象与属性
- [Jamendo] AlbumAdapter 之 getView
- C语言使用过程中遇到的问题