`
nickevin
  • 浏览: 38422 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于ExtJS项目实践: 用户界面与业务逻辑的解耦

阅读更多

下面将 用户界面称为UI  业务逻辑称为BL

 

几个重点

1. Ext.extend()

2. UI与BL解耦

 

每个模块分为3个文件

1. UI定义

2. BL和事件处理

3. 组织

 


 UI定义

 

// Account.ui.js 定义UI

 AccountUi = Ext.extend(Ext.form.FormPanel, {
    title: 'Account',
    labelWidth: 100,
    labelAlign: 'left',
    layout: 'form',
    width: 600,
    frame: true,
    initComponent: function() {
        this.items = [
            {
                xtype: 'container',
                autoEl: 'div',
                layout: 'column',
                items: [
                    {
                        xtype: 'container',
                        autoEl: 'div',
                        layout: 'form',
                        columnWidth: 0.5,
                        items: [
                            {
                                xtype: 'textfield',
                                fieldLabel: 'First Name',
                                anchor: '95%',
                                name: 'fname',
                                ref: '../../fname'
                            },
                            {
                                xtype: 'datefield',
                                fieldLabel: 'Birth of day',
                                anchor: '95%',
                                name: 'birthday',
                                ref: '../../birthday'
                            }
                        ]
                    },
                    {
                        xtype: 'container',
                        autoEl: 'div',
                        layout: 'form',
                        columnWidth: 0.5,
                        items: [
                            {
                                xtype: 'textfield',
                                fieldLabel: 'Last Name',
                                anchor: '95%',
                                name: 'lname',
                                ref: '../../lname'
                            },
                            {
                                xtype: 'combo',
                                fieldLabel: 'Sex',
                                anchor: '95%',
                                name: 'sex',
                                ref: '../../sex'
                            }
                        ]
                    }
                ]
            },
            {
                xtype: 'htmleditor',
                anchor: '98%',
                fieldLabel: 'Memo',
                height: 150,
                width: 300,
                name: 'memo',
                ref: 'memo'
            }
        ];
        this.fbar = {
            xtype: 'toolbar',
            items: [
                {
                    xtype: 'button',
                    text: 'Save',
                    ref: '../saveBtn'
                },
                {
                    xtype: 'button',
                    text: 'Reset',
                    ref: '../resetBtn'
                }
            ]
        };
        AccountUi.superclass.initComponent.call(this);
    }
});

 

BL和事件处理

 

// Account.js  处理业务逻辑和事件 关于如何引用到Form中的变量, 请参考 组件的 ref 的定义与配置

Account = Ext.extend(AccountUi, {
    initComponent: function() {
        Account.superclass.initComponent.call(this);
        
        this.saveBtn.on('click', this.doSaveAction, this);
    },
    doSaveAction:  function() {
        alert('do business A....');
        alert('do business B....');
    }
});

 

组织

 

// index.js

Ext.onReady(function() {

    var account = new Account({
        renderTo: Ext.getBody()
    });

    account.show();

});

 

如果为生成模块的UI感到苦恼,字段太多感到维护困难,那么ExtJS Designer将是选择之一。以后开发的工作量将从UI的排版和字段的维护降至最低点,而你所专注的只有业务逻辑的处理。

 

 

–end–

  • 大小: 60.3 KB
2
2
分享到:
评论
2 楼 niss2010 2010-09-16  
不错啊,我咋没想到呢,不错
1 楼 wzglovejava 2010-06-13  
楼主,俺现在也在自学extjs,你写的这个,俺是看着熟悉,就是不懂啊,咱两个不是一个档次的,想跟你学学呀,QQ853922737。

相关推荐

    北风网--Extjs项目之个人理财项目(Extjs+S2SH+Mysql) 真正的完整版源代码 真正的完整版源代码

    该项目是基于Extjs的个人理财管理系统,结合了S2SH(Struts2、Spring、Hibernate)框架和MySQL数据库,提供了一套完整的前后端解决方案。以下将详细解析该项目涉及的主要技术点和实现流程。 1. Extjs:Extjs是一个...

    spring+extjs项目文件

    Spring以其强大的企业级应用支持和模块化设计,成为Java开发的主流选择,而ExtJS则是一款功能丰富的JavaScript前端框架,擅长构建富交互的用户界面。当这两者结合,能够构建出高效、用户体验优良的人力资源管理系统...

    基于asp.net,ExtJs6.0.2的MVVM基础项目

    MVVM是一种设计模式,常用于创建可维护性和可测试性更高的用户界面,它将业务逻辑、视图状态和UI绑定解耦。 【描述】:“准备基于ExtJs6.0.2搭建一个平台,基础结构先放一个。”表明开发者计划使用ExtJs6.0.2来构建...

    基于ExtJS开发的酒店管理系统C#源码

    系统利用ExtJS的组件模型,如表格、面板、窗口、菜单等,构建出直观且交互性强的用户界面。此外,ExtJS的布局管理器使得页面元素可以灵活地适应不同屏幕尺寸,提高了系统的响应式设计。 2. **三层架构**: 系统...

    Spring +ibatis(ibator)+Extjs 项目 架构 例子

    iBatis通过XML或注解配置,将数据库操作与业务逻辑层解耦。在这个项目中,ibator可能是iBatis的一个工具,它是iBatis的代码生成器,能自动生成基于数据库模式的Java实体类、Mapper接口和XML配置文件,大大提高了开发...

    SSH整合extjs开发的进销存系统

    SSH整合ExtJS开发的进销存系统是一种基于Java技术栈的Web应用程序,它结合了Spring、Struts2和Hibernate三个框架的优势,同时利用了ExtJS这个强大的JavaScript前端库,为用户提供了一个功能丰富的交互式界面。...

    EXTJS---完整数据库代码,全网唯一,非常适合EXTJS搭建框架,包含动态树,菜单等

    它提供了模型-视图-控制器(MVC)模式的实现,使得前端EXTJS与后端业务逻辑解耦。通过SpringMVC,EXTJS可以通过Ajax请求与服务器进行通信,处理数据的增删改查,实现前后端的高效协作。 4. **JDBC数据访问**: JDBC...

    EXTJS代码生成器

    而MVC(Model-View-Controller)模式则是一种软件设计模式,常用于分层架构,使得应用程序的业务逻辑、用户界面和数据存储之间解耦。 在EXTJS中,MVC模式的应用主要体现在以下几个方面: 1. **模型(Model)**:...

    可二次开发Extjs4.0通用后台管理系统源码完整大型项目

    1. **前端资源**:包含Extjs4.0的库文件,以及自定义的CSS样式、JavaScript脚本和图片资源,这些文件负责构建用户界面。 2. **控制器层**:主要由Java的Servlet或Spring MVC的Controller实现,接收前端请求,调用...

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发

    在本项目中,ExtJS被用来构建后台管理系统的用户界面,提供了美观、易用的控制面板,增强了用户体验。 描述中提到,这个项目是“免费下载”的,适用于“毕业设计”、“课程设计”或“项目工程”,表明其具有教学和...

    Extjs 与后台交互的实例

    在"用户管理"这个实例中,ExtJS将作为用户界面层,负责展示用户数据并提供交互操作。 1. **ExtJS的数据交互**:ExtJS通过Ajax方式与服务器进行数据通信。它使用Store组件来管理数据,并通过Proxy组件定义与服务器的...

    Vs2005+Access+Asp.net+Extjs三层架构源码

    在本项目中,ExtJS可能用于创建用户界面,提供丰富的交互性和美观的视觉效果。 **三层架构** 三层架构是一种常见的软件设计模式,将应用划分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。表现层负责用户...

    ssh+extjs实例

    7. **测试与调试**:SSH项目中可能包含JUnit测试类,用于单元测试业务逻辑。同时,使用IDE(如Eclipse或IntelliJ IDEA)的调试功能可以帮助开发者定位和修复问题。 8. **部署与运行**:项目部署通常涉及Tomcat、...

    dotnet-ExtApp是一个基于三层架构使用NHibernateAPIController和ExtJs创建的单页Web应用框架

    dotnet-ExtApp正是遵循这一原则,将用户界面、业务逻辑处理和数据存储分离,确保了各层之间的松耦合,从而提高了系统的稳定性和可重用性。 NHibernate,作为.NET平台上的一个流行对象关系映射(ORM)框架,是dotnet...

    ssh2+ext+oracle 的项目实例

    本项目实例结合了这两种技术,提供了一个基础的增删改查(CRUD)应用,展示了EXTJS在用户界面设计上的强大功能以及SSH2在后端数据处理和业务逻辑整合的优势。 首先,SSH2是一个流行的企业级开发框架,由Spring负责...

    ExtJs + structs + spring + hibernate(进销存系统)

    ExtJs 提供了直观的用户界面,Structs 处理HTTP请求和业务逻辑,Spring 实现了服务层管理和事务控制,而Hibernate 则负责数据的持久化。这种技术栈组合为开发高质量的进销存系统提供了坚实的基础。

    SSH + EXTJS_管理系统

    1. 前后端分离:EXTJS负责页面展示和交互,SSH处理业务逻辑和数据操作,两者通过Ajax通信,实现了前后端解耦。 2. 用户友好的界面:EXTJS的组件设计使得系统界面美观且易于操作。 3. 强大的数据管理:SSH框架与...

    人力资源管理项目(ssh+extjs)

    SSH框架是Java开发中的经典组合,提供了强大的模型-视图-控制器(MVC)架构支持,而ExtJS则为用户界面设计提供了丰富的组件和交互效果。 【SSH框架详解】 1. Struts2:作为MVC框架的一部分,Struts2负责处理HTTP...

    JAVAWEB企业OA项目源码(ExtJS+4.2+Hibernate+4.1.7+Spring+MVC+3.2.8)

    综上所述,这个JAVAWEB企业OA项目源码是一个集成了前沿技术的实例,它展示了如何利用ExtJS构建现代用户界面,使用Hibernate进行数据管理,以及通过Spring MVC和Spring框架实现高效的业务逻辑处理。对于JavaWeb开发者...

    extjs4MVC实现

    - Views:视图是用户界面的表示,可以是组件、面板或者整个页面。它们通过绑定到模型或存储器来自动显示数据。 - Controllers:控制器负责监听视图事件和用户交互,对模型和视图进行操作,实现业务逻辑。 - App:...

Global site tag (gtag.js) - Google Analytics