`
softstone
  • 浏览: 477814 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

自己编写Struts2 的Result

阅读更多

先看struts2的源代码

public class PlainTextResult extends StrutsResultSupport ...{
        ..........
        
protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception ...{

        ..........
        HttpServletResponse response 
= (HttpServletResponse) invocation.getInvocationContext().get(HTTP_RESPONSE);
        ServletContext servletContext 
= (ServletContext) invocation.getInvocationContext().get(SERVLET_CONTEXT);


        
if (charset != null...{
            response.setContentType(
"text/plain; charset="+charSet);
        }

        
else ...{
            response.setContentType(
"text/plain");
        }

        response.setHeader(
"Content-Disposition""inline");


        PrintWriter writer 
= response.getWriter();
        InputStreamReader reader 
= null;
        
try ...{
            
if (charset != null...{
                reader 
= new InputStreamReader(servletContext.getResourceAsStream(finalLocation), charset);
            }

            
else ...{
                reader 
= new InputStreamReader(servletContext.getResourceAsStream(finalLocation));
            }

            
if (reader == null...{
                _log.warn(
"resource at location ["+finalLocation+"] cannot be obtained (return null) from ServletContext !!! ");
            }

            
else ...{
                
char[] buffer = new char[BUFFER_SIZE];
                
int charRead = 0;
                
while((charRead = reader.read(buffer)) != -1...{
                    writer.write(buffer, 
0, charRead);
                }

            }

        }

        
finally ...{
            
if (reader != null)
                reader.close();
            
if (writer != null...{
                writer.flush();
                writer.close();
            }

        }

    }

}

 PlainTextResult继承了StrutsResultSupport,实现了doExecute()方法,这个方法传入的两个参数,一个是location,这是一个默认参数,即result中配置的URL,另一个是ActionInvocation,执行上下文。学习PlainTextResult这个例子,我们可以很容易的编写自己的Result。

只需继承StrutsResultSupport类,实现doExecute方法即可。通过ActionInvocation可以得到response,输出你想要的结果就可以。

如果自定义的Result需要传入多个参数,可以参考ServletActionRedirectDispater,也是很容易就可以实现。

 

分享到:
评论

相关推荐

    struts2 result配置详解

    Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....

    Struts2接口文档

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller...通过仔细研读这份文档,开发者不仅可以掌握框架的基本用法,还能对Struts2的底层机制有深入的认识,从而更好地优化自己的代码和设计。

    struts2 xslt result 实现

    于是就研究使用Struts2的XSLT result方式来做页面显示。 网上相关的内容非常的少,我也研究了好久才玩转的。一开始总是有一些莫名其妙的问题出现,但最后基本上都是和配置相关的比较多。现在这个例子是整个工程项目...

    留言板留言板struts2留言板struts2

    这个项目可能包含了Action编写、视图渲染、用户交互、数据验证等基本功能,是学习和理解Struts2框架的一个很好的实践案例。通过分析和运行这个项目,可以深入理解Struts2的工作原理及其在实际应用中的运用。

    struts2+json

    Struts2是一个强大的Java web开发框架,它极大地简化了基于MVC(模型-视图-控制器)架构的应用程序开发。这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一...

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的...希望本教程能帮助大家更好地理解和运用Struts2,为自己的项目带来更多的价值。

    struts2简单例子

    - 编写JSP页面:使用Struts2的标签库来展示数据和处理用户输入。 3. **Struts2标签库**: 包含在`struts2-tags`中的文件可能是一个示例,展示了如何在JSP页面中使用Struts2标签。这些标签简化了页面逻辑,如表单...

    自己写的 Struts 2源代码 例子(包括Struts2 标签)

    Struts 2是一款强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛应用,极大地简化了企业级应用的构建。本压缩包包含的源代码例子旨在帮助理解Struts 2的工作原理和使用方式,特别是Struts 2的标签库...

    struts2 API帮助文档

    Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。这个API帮助文档是开发者在使用Struts2框架时的重要参考资料,它详细阐述了框架的各种组件、类库和方法,有助于理解并有效...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    本视频教程由传智播客提供,旨在帮助初学者理解Struts2的基础概念,并指导如何搭建Struts2的开发环境。 首先,我们要了解Struts2的核心概念。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架,它的...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2所需jar包 lib.zip

    2. **struts2-convention-plugin**: 这个插件实现了约定优于配置的原则,使得开发者可以不写XML配置文件,而通过类名和方法名自动映射URL。 3. **struts2-dojo-plugin**: 提供了与Dojo JavaScript库的集成,便于...

    struts2树的编写

    4. **配置Struts2**:在`struts.xml`中配置Action,定义Action的result类型,通常是JSON或者Freemarker模板,以便于前端解析。 5. **前端展示**:使用JavaScript库(如jQuery UI的Treeview插件、JSTree等)在页面上...

    我自己写的一个Struts2

    这个"我自己写的一个Struts2"项目可能是一个个人实践或者学习成果,其中包含了实现Struts2核心概念和功能的代码示例。 Struts2的核心特性包括: 1. **MVC模式**:Struts2遵循Model-View-Controller设计模式,将...

    struts2入门例子

    这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...

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

    ### Struts2讲义知识点概览 #### 一、Struts2的历史与发展 - **Struts框架的发展历程**: - Struts最初版本发布于2000年,是Java Web开发领域的一个重要里程碑。 - 随着时间的发展和技术的进步,Struts逐渐暴露...

    Struts2全部jar包

    一旦完成配置,就可以开始编写Action类、创建视图和配置拦截器,从而构建起完整的Struts2应用程序。 为了快速搭建Struts2项目,你可以遵循以下步骤: 1. 创建一个新的Java Web项目。 2. 将提供的jar包复制到项目的...

    struts2 项目源码

    Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。本项目源码提供了一个基础的Struts2应用程序实例,对于初学者来说,这是一个很好的学习资源,可以深入...

    struts2经典实例

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。它是Apache软件基金会的Jakarta项目的一部分,旨在简化开发过程,提高可维护性和可扩展性。在本实例集中,我们将...

    Struts2框架 jar JAVA开发 Struts2.jar架包 Struts2开发实例

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(Model-View-Controller)架构的Web应用。它基于Apache软件基金会的Jakarta Struts项目,旨在提供比其前身Struts1更为灵活和功能...

Global site tag (gtag.js) - Google Analytics