`
zhangxiang390
  • 浏览: 216695 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

struts2中常用Result类型的用法

阅读更多

一、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最常用的几个类库

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

    struts2常用jar包

    在Struts2中,它通常用于视图层的渲染,将数据模型与模板结合,生成最终的用户界面。 4. struts2-dojo-plugin-2.3.4.1.jar:这个插件提供了对Dojo JavaScript库的支持,帮助开发者在Struts2应用中集成丰富的客户端...

    struts2常用的类包

    OGNL表达式允许动态访问对象属性,是Struts2中数据绑定的关键。 4. **freemarker**: Freemarker是一个模板引擎,常用于生成HTML视图。Struts2支持多种视图技术,FreeMarker是其中一种,允许开发者通过简单的模板...

    struts2常用包.zip

    下面将详细介绍这些文件及其在Struts2中的作用: 1. `struts2-core-2.3.1.2.jar`:这是Struts2的核心库,包含了框架的主要组件和功能。它提供了Action、Result、Interceptor等核心概念,使得开发者可以通过定义...

    Struts2 result和type

    ### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...

    struts2配置文件之result

    Struts2中的`result`配置是框架的核心特性之一,它提供了灵活的页面跳转机制。通过合理地使用全局结果配置和具体的Action结果配置,可以大大简化开发过程,提高代码的复用性和可维护性。此外,掌握不同结果类型的...

    Struts2中文教程,Struts2API

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

    struts2常用的13个jar包

    7. **ognl-3.0.6.jar**:Object-Graph Navigation Language (OGNL) 是Struts2中的表达式语言,用于访问和操作对象属性,它是Struts2中数据绑定和方法调用的基础。 8. **commons-io-2.0.1.jar**:Apache Commons IO...

    struts2常用包

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

    struts2数据库常用操作

    在Struts2中,通常我们会创建一个数据库连接类,如`DBcon`,它包含了获取数据库连接的方法。这个类通常使用JDBC(Java Database Connectivity)API,通过加载数据库驱动并调用`Connection`对象的方法来建立与数据库...

    JSP上手struts2常用包2.3版

    2. **Struts2 JSP标签库**:`struts2-convention-plugin.jar`和`struts2-jsp-plugin.jar`提供了与JSP集成的支持,允许开发者在JSP页面中使用Struts2的标签来简化视图层的开发,如`s:property`、`s:form`、`s:action`...

    struts的常用jar包

    2. 在struts.xml中配置Action,包括Action类、方法映射和结果类型。 3. 创建视图文件,如JSP或Freemarker模板,用于展示数据。 4. 编写相应的JSP或Freemarker标签来绑定Action中的数据。 通过以上步骤,你可以开始...

    STRUTS2常用JAr

    4. **ognl.jar**:Object-Graph Navigation Language(OGNL)是Struts2中的表达式语言,用于在Action对象和视图之间传递数据。ognl.jar提供了OGNL的解析和执行支持。 5. **struts2-convention-plugin.jar**:这是一...

    Struts2常用jar包.rar

    - `ognl.jar`:Object-Graph Navigation Language(OGNL)是Struts2中的默认表达式语言,用于在Action对象和JSP视图之间传递数据。 - `freemarker.jar`或`struts2-freemarker-plugin.jar`:FreeMarker是一个模板...

    struts2最常用的一组包

    2. **Struts2 Core**: `struts2-core-2.3.34.jar`是Struts2的核心库,包含了Struts2框架的主要组件,如拦截器(Interceptors)、结果类型(Result Types)、插件架构(Plugin Architecture)等。拦截器是Struts2实现...

    struts2 学习重点笔记

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

    struts2所需jar包 lib.zip

    在Struts2中,这些组件常被用作辅助工具,提升代码的效率和可读性。 在Struts2框架中,有几个关键的JAR文件值得关注: 1. **struts2-core**: 这是Struts2的核心库,包含Action、Result、Interceptor等核心组件的...

    struts2小练习

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中...通过这个练习,初学者不仅能熟悉Struts2的基本架构,还能掌握实际开发中的常用技巧,为进一步深入学习和应用Struts2打下坚实基础。

Global site tag (gtag.js) - Google Analytics