web页面模块化异步渲染 struts-gpipe

未知
Java
跨平台
2015-05-10
大胖森

struts-gpipe 提供了将 groovy 引入 struts java web 项目的功能, web页面模块化异步渲染。

这个项目的初衷是为了将groovy引入我们的struts web项目,在开发的过程中,发现有跟多可以做的是全,不过在最初的版本,struts-gpipe主要包括两个功能:

1,经过简单的配置可以将groovy引入struts项目,这个时候我们可以将一些业 务逻辑代码从java code中提取出来放在groovy里面,至于为什么要把一些业务逻辑代码放在groovy里面,这是因为我们可以利用groovy动态语言的特性,想一 想,我们发布的时候再也不需要将java code编译成class然后在deploy。或许我们可以一秒钟搞定发布..这一点是振奋人心的..:)。但是这秒发的功能在struts-gpipe 在最初的版本中并没有做,后面会陆续加入。

2,struts-gpipe的第二个主要功能是实现了异步响应的思想,我们通常的 web页面都是将所有内容渲染完才返回到页面的,如果这个页面很笨重,那么用户可能会遭遇到“白屏”的体验,这对产品来说简直是体验大打折 扣,struts-gpipe项目提供了将整个页面拆分成若干模块的功能,每一个模块都独立渲染,多个模块并发渲染,我们可以让一部分模块渲染完成之后先 返回给客户端,让另一部分模块渲染之后后返回给客户端,不用想,这样用户体验会好很多。

struts-gpipe与struts和spring的整合:

1,struts-gpipe提供注入spring容器bean的功能,用法一致。

2,struts-gpipe提供ongl的功能,也就是会自动将模块属性引入 freemarker渲染,这一点是和spring mvc不同的,用过spring mvc的都知道,spring mvc向freemarker传入数据需要往model传入塞,而这一点struts使用了ongl技术,让用户不用写塞数据的冗余代码。

struts-gpipe开发的时候尽量考虑到了用户的使用成本,因此将struts-gpipe引入项目配置起来相对还是比较简单的,下面简单介绍一下如何将struts-gpips引入我们的项目:

1.web.xml配置

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>com.gweb.filter.GStrutsPrepareAndExecuteFilter</filter-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>struts-default.xml,struts-gpipe.xml,struts-plugin.xml,struts/struts.xml</param-value>
        </init-param>
    </filter>

struts-gpipe过滤器继承了StrutsPrepareAndExecuteFilter,在启动的时候会初始化struts-gpipe容器。

2,struts.xml配置

<constant name="gweb.groovy.dir" value="biz" />

   <package name="gweb" namespace="/index" extends="gpipe-default">
                <action name="index" class="com.gweb.front.action.Index">
                        <result name="success" type="gweb">/WEB-INF/ftl/index.ftl</result>
                </action>
        </package>

第一个配置的struts常量是配置groovy脚本的的路径, 这个路径可以相对resource目录,第二个配置是需要使用struts-gpipe的package需要继承gpipe-defaule的配置,第三 个配置表示一种struts的返回类型。struts-gpipe为struts返回类型添加了一个类型“gweb”,struts-gpipe会代理处 理index.ftl的渲染。

3,脚本示例代码

@GPipeMapping("m1")
@Asyn
class M1 implements GPipe{

    private String m1;

    @Override
    String execute() {
        m1 = "build by m1.groovy";
        return "/WEB-INF/gpipe/m1.ftl"
    }

    String getM1() {
        return m1
    }

    void setM1(String m1) {
        this.m1 = m1
    }
}

这里需要配置模块的名字,渲染方式:同步还是异步,返回的ftl路径。模块的名字和主模块里面名字对应:

sync:
${GPipe_m1}

anyn:
${GPipe_m2}

其中GPipe_是我给模块名字起的前缀,这个固定,后面的对应groovy脚本里面用注解配置的名字。

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Struts秘籍之起式:第1.2式:部署Struts示例应用 

第1.2式. 部署Struts 示例应用 问题 你需要将Struts所带的MailReader 示例应用部署到Tomcat中。 动作分解 如果你好没有安装和运行Tomcat,你可以从 http://jakarta.apache.org/tomcat下载之。...

2012/03/27 18:01
19
0
Struts1 整合 Struts2 的方法以及插件使用范例 官方文档

Struts 1 Plugin Apache Struts 2 Documentation Struts 1 Plugin The Struts 1 plugin allows you to use existing Struts 1 Actions and ActionForms in Struts 2 applications. This plug...

2012/11/22 13:17
203
0
Struts秘籍之起式:第1.4式:升级至Struts 1.2 

第1.4式. 从Struts 1.1 升级至Struts 1.2 问题 你想要升级基于Struts 1.1 的应用至Struts 1.2。 动作分解 下载Struts 1.2 binary distribution,地址为http://struts.apache.org/acquiring....

2012/03/27 18:01
18
0
struts搭建基本配置

struts搭建基本配置

2015/06/21 01:10
20
0
Struts秘籍之起式:第1.3式:迁移至Struts 1.1 

第1.3式. 从Struts 1.0迁移至Struts 1.1 问题 你需要将一个基于Struts 1.0的应用迁移到Struts 1.1. 动作分解 使用Struts1.1中对应的文件替换Struts 1.0 JAR 文件、标签库描述符(TLD) 文件、以...

2012/03/27 18:01
19
0
Struts2第四天

三. 分模块配置方法 <inclue file=""></include> XML cheliang.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configu...

2014/12/02 23:31
45
0
Struts秘籍之第1段:配置Struts应用 

第1段. 配置Struts应用 介绍 Struts 为我们提供了一个灵活的框架。它可以以很多不同的方式进行使用,并且可以在多种不同的层面进行定制和扩展。这种灵活性的结果是,许多开发人员不知道如何配...

2012/03/27 18:01
13
0
Struts 基础题

###1. Struts的应用(如STRUTS架构) Struts 是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的...

2014/12/21 09:48
151
0
Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache Struts 2.3.35的版本都会受到...

11/08 16:55
24
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部