`

使用ExtDirectSpring整合Spring3和ExtJs4

 
阅读更多

ExtDirectSpring是一个用于ExtJs4直接调用远程Spring方法的第三方库。我们不再需要在spring方法中封装json对象供外界调用,ExtJs4也不再需要手动解析远程服务器返回过来的Json对象,所有这些操作都由ExtDirectSpring去处理,ExtJs4只需要象调用本地方法一样去操作远程资源。

 

ExtDirectSpring主页地址:

https://github.com/ralscha/extdirectspring

 

以下是一个简要的工程搭建过程(我们假设你已经创建了一个Spring MVC的工程)

1: 在pom.xml中添加相关依赖

 

    <dependency>
        <groupId>ch.ralscha</groupId>
        <artifactId>extdirectspring</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.1</version>
    </dependency>

 

2: 将含有@ExtDirectMethod标签的类所在包添加到Spring组件管理中

注:所有被暴露出来允许远程访问的方法都需要添加@ExtDirectMethod注解

 

<context:component-scan base-package="com.train.extdirectspring,ch.ralscha.extdirectspring" />

 

3: 在Spring配置文件中添加对ExtDirectSpring的全局配置信息

 

    <bean id="extDirectSpringConfiguration" class="ch.ralscha.extdirectspring.controller.Configuration" p:timeout="12000"
        p:maxRetries="10" p:enableBuffer="false">
        <property name="exceptionToMessage">
            <map>
                <entry key="java.lang.IllegalArgumentException" value="illegal argument" />
                <entry key="org.springframework.beans.factory.NoSuchBeanDefinitionException">
                    <null />
                </entry>
            </map>
        </property>
    </bean>
 

到此为止,服务器端的配置基本完成,下面开始讲述页面前端如何配置调用远程后端方法。

 

 

4: 下载并复制ExtJs4的关联文件到工程中去

  • 从官网下载并解压http://www.sencha.com/products/extjs
    
 
  • 复制文件夹locale, resources及文件ext-all-debug.js and ext-all.js到WEB工程目录中    
    
 
5: 引入ExtJs4的CSS和JS文件到你的页面中
<link rel="stylesheet" type="text/css" href="/resources/extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="/resources/extjs/ext-all-debug.js" ></script>
 
6: 引入ExtDirectSpring提供的api.js/api-debug.js文件到你的页面中
<script type="text/javascript" src="/spring/api-debug.js"></script>
 注:这里的/spring/前缀取决于你的web.xml中的Spring Dispatcher的配置。并且该api-debug.js是由系统生成而非一个静态文件。

7: 引入用于当前页面布局的js文件
<script type="text/javascript" src="/SpringMVC/resources/app/welcome.js"></script>
  注:该文件由用户自定义

 从下面开始我们就要开始编写Extjs代码,我们采用Extjs的MVC框架,编写的一般过程为:编写页面布局js(上面的welcome.js) -> 编写model(MVC) -> 编写store(这个对象主要用于数据集的展示,如实现分页排序等功能) -> 编写视图层(MVC)  -> 编写控制层(MVC) -> 编写SpringMVC方法与ExtJs控制层交互

8: 编写上面定义的welcome.js
Ext.Loader.setConfig({
    enabled: true
});

Ext.require('Ext.direct.*', function() {
    Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
});

Ext.application({
    controllers : [ 'sample'], //与第12个步骤中文件名一致
//    autoCreateViewport : true,
    name : 'Mtx', //应用名,可以任取,不重复即可
    appFolder: 'resources/app', //这里配置当前应用下你的ExtJs MVC代码的存放路径
        
    launch : function() {
        Ext.create('Ext.container.Viewport', {
            items : [ {
                xtype : 'sampleList', //参考第11步中的视图别名
                layout : 'fit',
                margins: 5
            } ]
        });
    }
});
 

9:  编写模型Model
按照ExtJs的规范,我们默认将model文件存放在resources/app/model目录下,其中'resources/app'由第8个步骤中的appFolder配置所决定,model是默认的模型存放文件夹名。我们在这里创建一个路径为resources/app/model/sample.js的用于描述model的文件。我们只简单定义id和name两个字段(实际开发中,一般需要根据数据库中的表结构来定义)
Ext.define('Mtx.model.Sample', {
    extend : 'Ext.data.Model',//所有定义的model对象都需要继承该父对象

    fields : [ {
        name : 'id',
        type : 'int'
    }, {
        name : 'name',
        type : 'string',
    } ],

    proxy : {
        type : 'direct',
        api : {
            read : helloController.read, //这里的四个方法是ExtJs框架默认集成好的,一般我们只需要实现对应的方法就可以轻松实现增删改查操作
            create : helloController.save,
            update : helloController.save,
            destroy : helloController.destroy
        },
        reader : {
            root : 'records'
        }
    }
});

10: 编写store(这个对象主要用于数据集的展示,如实现分页排序等功能)
和model一样,store的默认存放路径为$appFolder+'/store', 这里对应路径为resources/app/store/sample.js
Ext.define('Mtx.store.Skus', {
    extend: 'Ext.data.Store',
    model: 'Mtx.model.Sample', //参考第9步中定义的model
    autoLoad: true,
    pageSize: 25, 
    remoteSort: true,
    autoSync: true,
    sorters: [ {
        property: 'name',
        direction: 'ASC'
    } ]
});
 
 11: 编写视图层View
与上面一样,store的默认存放路径为$appFolder+'/view', 这里对应路径为resources/app/view/sample.js
Ext.define('Mtx.view.Sample', {
    extend : 'Ext.grid.Panel',
    alias : 'widget.sampleList', //别处如果需要引用该View,可以使用别名sampleList

    store : 'sample',//必须与第9步中创建的model文件名一致

    initComponent : function() {
        var me = this;

        Ext.applyIf(me, {
            columns : [ {
                xtype : 'gridcolumn', 
                dataIndex : 'id', //列中显示数据在model中与之对应的变量名
                text : 'ID', //表中的列名
                flex : 1
            }, {
                xtype : 'gridcolumn',
                dataIndex : 'name',
                text : 'Name',
                flex : 1
            }],

            dockedItems : [ {
                xtype : 'toolbar',
                dock : 'top',
                items : [ {
                    fieldLabel : 'Filter', //增加过滤功能,根据输入的字符与name字段进行模糊匹配
                    labelWidth : 40,
                    xtype : 'textfield',
                    itemId : 'filtertextfield'
                }, '->', {
                    xtype : 'pagingtoolbar', //加上分页功能
                    store : me.getStore(),
                    displayInfo : true
                } ]
            }, ]
        });

        me.callParent(arguments);
    }

});

12: 编写控制层Controller
还是和上面一样,store的默认存放路径为$appFolder+'/controller', 这里对应路径为resources/app/controller/sample.js。控制层主要用于为视图中的组件绑定不同的事件。

 

 

 

  • 大小: 112.9 KB
  • 大小: 19.1 KB
分享到:
评论
1 楼 sl543001 2013-10-21  
求demo下载地址

相关推荐

    ExtJS5 整合Spring4之二

    综上所述,"ExtJS5 整合Spring4之二" 主题涉及了JavaScript前端开发与Java后端服务的融合,涵盖ExtJS5的组件使用、Spring4的服务设计,以及两者之间的数据交换。在实际项目中,这种集成能够构建出高效、功能丰富的...

    spring mvc +Extjs

    Spring MVC 3和ExtJS结合使用时,JSON成为两者之间数据交换的主要媒介。通过在Spring配置中添加JSON消息转换器,设置前端请求的JSON格式,以及在后端控制器中使用适当的注解,我们可以实现高效的前后端数据交互。...

    spring security3+extjs4项目(含数据库文件)

    Spring Security 3 和 ExtJS 4 是两个在Web开发领域广泛应用的技术栈,它们结合可以构建出强大且安全的用户界面。下面将详细讲解这两个技术及其在项目中的应用。 Spring Security 是一个为Java应用程序提供安全服务...

    spring+extjs项目文件

    3. 考勤管理:结合Spring的定时任务和ExtJS的图表组件,实现考勤数据的统计和可视化展示。 4. 培训与绩效:利用ExtJS的表单和树形组件,构建培训课程和绩效评估模块,Spring处理后台业务逻辑。 通过学习和掌握...

    Spring3MVC + MyBatis + ExtJs3整合开发系列

    Spring3MVC、MyBatis和ExtJs3的整合开发旨在创建一个高效的、灵活的Web应用程序。整合的关键在于如何协调这些框架的工作,使得Spring3MVC处理HTTP请求和控制流程,MyBatis负责数据访问和SQL执行,而ExtJs3则作为前端...

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容...ExtJS3 升级到 ExtJS4 需要修改大量代码,需要我们重新学习和适应 ExtJS4 的新特性和变化。

    spring3+ibaits3+struts2.18+Extjs3整合增删查改

    "Spring3+iBatis3+Struts2.18+ExtJS3整合增删查改"是一个典型的Java Web开发组合,用于实现高效的数据管理和用户界面交互。下面我们将深入探讨这个组合中的每个组件及其在整体架构中的作用。 **Spring3**: Spring...

    spring+mvc+mybatis+extjs整合

    【标题】"spring+mvc+mybatis+extjs...综合以上,"spring+mvc+mybatis+extjs整合"项目为初学者提供了学习现代Java Web开发的实践案例,涵盖了后端到前端的完整流程,有助于提升开发技能和理解企业级应用的架构设计。

    struts2.3 spring4 hibernate4.3 EXTJS4项目

    struts2.3 spring4 hibernate4.3 EXTJS4项目,用户管理权限系统。

    Spring3.0+Hibernate4.0+SpringMVC整合ExtJS4

    在本项目中,我们探讨的是如何将三个主流的Java企业级框架——Spring 3.0、Hibernate 4.0和Spring MVC与JavaScript前端框架ExtJS 4进行深度整合,以构建一个高效、灵活且功能丰富的Web应用。这个整合旨在提供一个...

    ExtJS4.1+MVC4+Spring.NET1.3+EF5 整合项目数据库

    ExtJS4.1+MVC4+Spring.NET1.3+EF5 整合项目数据库(pdm、sql及sqlite数据库) 原文地址:http://blog.csdn.net/xz2001/article/details/8723266

    Hibernate+Spring+Struts2+ExtJS整合开发实例

    "Hibernate+Spring+Struts2+ExtJS整合开发实例"就是一个典型的Java Web应用程序开发案例,它将四个关键组件结合在一起,以实现高效、模块化的后端和前端功能。 **Hibernate** 是一个流行的Java对象关系映射(ORM)...

    Spring+JPA+ExtJs(Grid)

    标题“Spring+JPA+ExtJS(Grid)”涉及的是一个整合了Spring框架、Java Persistence API (JPA) 和ExtJS Grid的项目。这个项目的核心在于利用这些技术构建一个数据展示和管理的前端后端系统。 首先,Spring是企业级...

    Spring+Struts2+ibatis+Extjs 整合 图书管理系统实例

    在本项目中,我们探讨的是一个基于Java技术栈的图书管理系统实现,具体采用了Spring、Struts2、iBatis和ExtJS这四个核心技术。这个系统旨在提供全面的图书管理功能,包括图书的增删改查、用户管理以及可能的借阅、...

    extjs4 + struct+ spring + hibernate 搭建后台

    本项目使用了`extjs4`作为前端框架,`structs2`作为MVC Web应用框架,`spring`处理业务逻辑和依赖注入,以及`hibernate`作为ORM(对象关系映射)工具,来搭建一个完整的后台系统。下面将详细介绍这四个技术及其在...

    SpringMVC+Extjs4案例

    SpringMVC+ExtJS4案例是一个综合性的Web项目开发示例,主要展示了如何结合SpringMVC、Hibernate和ExtJS4来构建一个具有基础CRUD(创建、读取、更新、删除)功能的Web应用程序。该项目涉及到的技术栈是企业级开发中...

    ssh+extjs4整合开发

    在SSH+EXTJS4的整合中,Spring还作为服务层和数据访问层的桥梁,将后端业务逻辑暴露为RESTful服务供前端调用。 Struts2是基于MVC模式的Web框架,主要负责处理HTTP请求并映射到相应的控制器方法。它通过Action类来...

    struts2.1.8+Hibernate3.3+spring2.5.6+extjs3.2的jar包

    Struts2、Hibernate3、Spring2以及ExtJS3.2是经典的Java Web开发框架和技术组合,它们在2000年代末至2010年代初广泛被开发者使用。这个组合提供了模型-视图-控制器(MVC)架构、对象关系映射(ORM)、依赖注入(DI)...

Global site tag (gtag.js) - Google Analytics