`

struts2的常用Result类型用法

阅读更多
chain

    用来处理Action链

    com.opensymphony.xwork2.ActionChainResult

dispatcher

    用来转向页面,通常处理JSP

    org.apache.struts2.dispatcher.ServletDispatcherResult

freemaker

    处理FreeMarker模板

    org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

    控制特殊HTTP行为的结果类型

    org.apache.struts2.dispatcher.HttpHeaderResult

redirect

    重定向到一个URL

    org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

    重定向到一个Action

    org.apache.struts2.dispatcher.ServletActionRedirectResult

stream

    向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据

    org.apache.struts2.dispatcher.StreamResult

velocity

    处理Velocity模板

    org.apache.struts2.dispatcher.VelocityResult

xslt

    处理XML/XLST模板

    org.apache.struts2.views.xslt.XSLTResult

plainText

    显示原始文件内容,例如文件源代码

    org.apache.struts2.dispatcher.PlainTextResult

redirect-action

    重定向到一个Action

    org.apache.struts2.dispatcher.ServletActionRedirectResult

plaintext

    显示原始文件内容,例如文件源代码

    org.apache.struts2.dispatcher.PlainTextResult

 

一、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()方法后于构造方法。

     

    分享到:
    评论

    相关推荐

      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 result和type

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

      struts2常用包.zip

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

      struts2常用的类包

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

      struts2配置文件之result

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

      struts2 学习重点笔记

      - **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 架构** - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View)...

      struts2最常用的几个类库

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

      JSP上手struts2常用包2.3版

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

      struts2常用的13个jar包

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

      struts2拦截器的使用方法

      ### Struts2拦截器的使用方法 #### 一、Struts2拦截器概述 Struts2框架中的拦截器(Interceptor)是一种重要的机制,用于在Action执行前后进行一系列处理,比如参数验证、数据预处理等。它能够帮助开发者更加灵活...

      struts2框架模板

      - **防止XSS攻击**:使用Struts2提供的过滤器或拦截器避免跨站脚本攻击。 - **防止CSRF攻击**:配置Struts2的安全插件,生成和验证CSRF令牌。 总之,"Struts2框架模板"为初学者提供了一个快速启动Struts2项目的...

      struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

      - Struts2默认提供了许多内置拦截器,例如`defaultStack`拦截器栈包含了多个常用拦截器。 - **自定义拦截器的实现**: - 实现`Interceptor`接口创建自定义拦截器,需要实现`intercept()`方法。 - 通过继承`...

      struts2所需jar包 lib.zip

      8. **javassist**: 这是一个字节码操作库,Struts2使用它来实现动态方法调用和拦截器的运行时生成。 9. **log4j**: 日志记录库,用于调试和监控应用的运行情况。 10. **servlet-api**: Java Servlet API,所有Web...

      struts2小练习

      这个"struts2小练习"是针对初学者设计的,旨在帮助他们快速理解和掌握Struts2的核心概念和基本用法。 Struts2框架的核心组成部分包括: 1. **Action类**:这是业务逻辑的主要承载者,处理用户请求并返回结果。在...

      Struts2常用jar包.rar

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

      Struts2中文教程,Struts2API

      通过查阅API,开发者可以了解如何使用Struts2提供的各种组件,例如ActionSupport、Result、Interceptor等,以及它们的常用属性和方法。 “Struts 2权威指南基于WebWork核心的MVC开发(免费阅读1-3章).rar”这本书的...

      Struts2项目代码

      4. **结果类型(Result)**:Action执行后会返回一个结果,Struts2支持多种结果类型,如dispatcher(转发到JSP页面)、stream(处理文件下载)等。结果类型在Action类的execute方法中通过返回值或注解指定。 5. **...

      STRUTS2常用JAr

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

      struts2标签用法详解

      在本文中,我们将深入探讨Struts2标签的用法,包括它们的基本概念、类型以及如何在实际开发中应用。 一、Struts2标签基础 Struts2标签库是基于JavaServer Pages (JSP) 标准标签库(JSTL)的扩展,它包含了一系列与...

    Global site tag (gtag.js) - Google Analytics