`
a68091555
  • 浏览: 26432 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2常用result类型用法

阅读更多

一、dispatcher

(1)为缺省的result类型,一般情况下我们在struts.xml会这么写:
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类型(type)的用法和出现的问题

    Struts2 中常用 Result 类型(type)的用法和出现的问题 Struts2 中的 Result 类型(type)是指在 Struts2 框架中用于确定 action 执行结果的方式。常用的 Result 类型有 dispatcher、redirect 和 chain 三种。这三...

    struts2常用jar包

    1. struts2-core-2.3.4.1.jar:这是Struts2的核心库,包含了框架的基础功能,如Action类、Result类型、拦截器、配置管理等。它是所有Struts2应用的基础,没有它,其他组件无法正常工作。 2. xwork-core-2.3.4.1.jar...

    struts2常用的类包

    本压缩包包含了13个Struts2框架中常用的类包,对于初学者和学生来说,掌握这些类包将对理解Struts2的工作原理及其核心功能大有裨益。 1. **struts2-core**: 这是Struts2的核心库,包含了框架的基础组件。如Action、...

    struts2常用包.zip

    `struts2常用包.zip`包含了Struts2框架运行所必需的一些核心库和其他支持库。下面将详细介绍这些文件及其在Struts2中的作用: 1. `struts2-core-2.3.1.2.jar`:这是Struts2的核心库,包含了框架的主要组件和功能。...

    JSP上手struts2常用包2.3版

    8. **结果类型(Result Type)**:Struts2提供了多种内置的结果类型,如dispatcher、stream、redirect等,用于控制请求的转发或重定向。 9. **动作(Action)**:Action是业务逻辑的载体,通常对应一个具体的用户操作。...

    STRUTS2常用JAr

    在"STRUTS2常用JAr"这个压缩包中,我们通常会看到以下关键的JAR文件: 1. **struts2-core.jar**:这是Struts2框架的核心库,包含了Action、Interceptor、Result以及其他核心组件的实现。它提供了控制器层的主要功能...

    struts2常用包

    总结来说,Struts2的常用包提供了一整套完整的解决方案,涵盖了Web应用开发的各个方面,从基础的请求处理到复杂的业务逻辑控制,再到前端展示和测试支持,都有一系列的组件和插件可以使用。这极大地提高了开发效率,...

    Struts2常用jar包.rar

    这个“Struts2常用jar包.rar”文件包含了运行Struts2应用所需的核心库和依赖,方便开发者直接放入项目的lib目录中使用。下面将详细介绍Struts2框架的关键组件和它们在实际开发中的作用。 1. **核心组件**: - `...

    struts的常用jar包

    5. Action执行完毕,返回一个Result类型,Struts2根据这个结果类型决定如何处理响应,如跳转页面或直接输出数据。 6. 最后,服务器将响应返回给浏览器,显示结果。 三、在Eclipse中导入Struts2的jar包 1. 首先,...

    struts2常用的13个jar包

    4. **javassist-3.11.0.GA.jar**:Javassist是一个Java字节码操作和分析框架,Struts2使用它来动态地修改或生成类,例如在运行时实现方法拦截。 5. **log4j-1.2.17.jar**:这是一个流行的日志记录框架,Struts2使用...

    struts2最常用的几个类库

    在使用Struts2时,了解并掌握其常用的类库至关重要。以下是一些核心的Struts2类库及其作用的详细解释: 1. **Struts2 Core Library**:这是Struts2的核心库,包含了框架的基本组件,如Action、Result、Interceptor...

    Struts2 result和type

    Struts2支持多种类型的`Result`,每种类型都有其独特的功能和应用场景: ##### 1. **dispatcher** `dispatcher`是最常用的类型之一,它通过调用`RequestDispatcher`类的`forward()`方法或`include()`方法将请求转发...

    struts2.0常用功能练习

    6. **结果类型(Result Type)**:Struts2支持多种结果类型,如`dispatcher`(转发到JSP页面)、`stream`(下载文件)、`redirect`(重定向URL)等。通过配置不同的结果类型,可以灵活控制页面跳转和响应方式。 7. ...

    struts2配置文件之result

    本文将深入探讨Struts2配置文件中`result`的配置方法及其不同的类型,并通过具体的代码示例来帮助读者更好地理解和掌握这一知识点。 #### 1. 全局结果配置 (Global Results) 全局结果配置是Struts2提供的一种高效...

    典型的struts2例子

    总的来说,Struts2例子是一个实践型的学习资源,帮助开发者熟悉Struts2框架的工作原理和使用方式,为构建实际的Web应用程序打下基础。通过实际操作,你可以更深入地理解MVC模式以及Struts2如何协调模型、视图和控制...

Global site tag (gtag.js) - Google Analytics