`

ExtJs4 MVC

 
阅读更多

=====================================================

goods.json,数据库返回的数据:

 

{
    success: true,
    results: [
        {id: 1, name: '商品007',    bm: '2001123456'},
        {id: 2, name: '商品008', bm: '2001123457'}
    ]
}

=====================================================

Model层:

GoodsStore.js:

/*
*商品store
*/
Ext.define('keel.store.GoodsStore', {
    extend: 'Ext.data.Store',
    model: 'keel.model.GoodsModel',
    autoLoad: true,   
    proxy: {
        type: 'ajax',
        api: {
            read: 'app/goods.json' //只是一个数据接口,可以按需改变
        },
        reader: {
            type: 'json',
            root: 'results',
            successProperty: 'success'
        }
    }
});

GoodsModel.js:

/*
商品的model层
*/
Ext.define('keel.model.GoodsModel', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'bm']
});

=====================================================

view层:

GoodsListView.js:

/*!
* 商品view层,这里只是一个负责显示的grid,没有逻辑代码
*/
Ext.define('keel.view.goods.GoodsListView' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.goodslistview',
    title : '商品列表',
    store: 'GoodsStore',
    columns: [
        {header: '商品编码',  dataIndex: 'bm'},
        {header: '商品名称', dataIndex: 'name'}
    ],
    tbar : [
     {text:'测试1',action:'testBtn1'},'-',
     {text:'测试2',action:'testBtn2'},'-'
    ]
});

 

GoodsWinView.js:

这里只是一个负责显示的窗口
*/
Ext.define('keel.view.goods.GoodsWinView', {
    extend: 'Ext.window.Window',
    alias : 'widget.goodswinview',
    title : '测试',
    autoShow: false,
    height: 200,
    width: 300,
    initComponent: function() {
        this.buttons = [
            {
                text: '点我改变标题',
                scope: this,
                action: 'ok'
            },
            {
                text: '关闭',
                scope: this,
                handler: function(){
        this.close();
       }
            }
        ];
        this.callParent(arguments);
    }
});

=====================================================

controller层:

GoodsCtrl.js

/*
商品控制层,
所有逻辑代码都在这里写
*/
Ext.define('keel.controller.GoodsCtrl', {
    extend: 'Ext.app.Controller',
    stores: ['GoodsStore'],//声明该控制层要用到的store
    models: ['GoodsModel'],//声明该控制层要用到的model
    views: ['goods.GoodsListView','goods.GoodsWinView'],//声明该控制层要用到的view
    refs: [//相当于一个映射,这样就可以在控制层方便的通过geter取得相应的对象了
        {
            ref: 'goodslistview',
            selector: 'goodslistview'
        },
        {
            ref: 'goodswinview',
            selector: 'goodswinview'
        }
    ],
    init: function() {
        this.control({//这里的this相当于这个控制层
            'viewport > goodslistview': {
                afterrender: function(gp){//侦听goodslistview渲染
                 gp.down('button[action=testBtn1]').on('click',function(){
                  //侦听goodslistview工具条上action=testBtn1的按钮单击事件
                  this.showWin();
                 },this);
                 
                 gp.down('button[action=testBtn2]').on('click',function(){
                  //侦听goodslistview工具条上action=testBtn2的按钮单击事件
                  alert(this.getGoodslistview().title)
                 },this);
                }
            },
            'goodswinview button[action=ok]': {
             //侦听goodswinview中action=ok的按钮单击事件
                click: function(){
                 this.getGoodswinview().setTitle(Ext.util.Format.date(new Date(),'Y-m-d H:i:s'));
                }
            }
        });
    },
    showWin : function(){
     Ext.create('keel.view.goods.GoodsWinView').show();     
    }
});

=====================================================

app.js:

Ext.Loader.setConfig({enabled:true});//开启动态加载

Ext.application({
    name: 'keel',//为应用程序起一个名字,相当于命名空间
   
    controllers: [//声明所用到的控制层
        'GoodsCtrl'
    ],
    launch: function() {//开始
        Ext.create('Ext.container.Viewport', {
            layout: 'fit',
            items: [
                {
                    xtype: 'goodslistview'
                }
            ]
        });
    }
});

=====================================================

index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>Ext4Mvc</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 
 <link rel="stylesheet" href="lib/resources/css/ext-all.css" type="text/css"></link>
 <script type="text/javascript" src="lib/ext-all.js"></script>
 <script type="text/javascript" src="app/app.js"></script>
  </head>
 
  <body>
   
  </body>
</html>

分享到:
评论

相关推荐

    Extjs4 MVC开发笔记源码

    Extjs4 MVC开发笔记源码,此源码已经将命名空间修改为Soyi,由于涉及到一些公司信息,将所有数据库中的数据清除,由于时间仓促。只有备案管理的grid是可以使用的,其他的功能,按照备案管理的文件照猫画虎即可实现。 ...

    extJS4 MVC demo项目入门

    extJS4 MVC demo项目入门涉及的是前端开发领域的技术要点,主要介绍了extJS4框架中的MVC(Model-View-Controller)模式在实际开发项目中的应用方法,并着重讲述了如何实现前端资源的按需加载和动态加载。在了解这些...

    extjs4MVC实现

    4. MVC 的优点 - 代码组织清晰,便于维护和扩展。 - 提供了数据绑定机制,使视图能自动响应模型的改变。 - 提高了开发效率,通过解耦模型、视图和控制器,可以独立地开发和测试各个部分。 5. 进阶使用 - 使用 ...

    Extjs4 MVC小实例

    这个“Extjs4 MVC小实例”很可能是为了展示如何在实际项目中有效地运用MVC模式。 **模型(Model)** 在ExtJS 4的MVC中,模型负责管理应用程序的数据。模型类通常与后端服务器的数据接口进行交互,处理数据的加载、...

    extjs4Mvc事例

    ExtJS 4 MVC是一个强大的JavaScript框架,用于构建富客户端应用程序。这个"extjs4Mvc"事例提供了关于如何在ExtJS 4中有效地利用MVC(Model-View-Controller)设计模式的详细教程。MVC模式是软件工程中常用的设计模式...

    Extjs4 MVC 官方实例整合 未改动 未删减 部署即可运行

    在ExtJS 4中,MVC(Model-View-Controller)设计模式是其核心架构,用于组织和管理应用程序的逻辑。这个官方实例集是ExtJS 4 MVC模式的一个完整展示,旨在帮助开发者理解并掌握如何使用MVC进行开发。 **MVC模式详解...

    extjs4mvc的crud

    ExtJS 4 MVC 是一种基于 Sencha ExtJS 框架的前端开发模式,用于构建交互性强、功能丰富的Web应用程序。在"extjs4mvc的crud"这个主题中,我们将深入探讨如何使用ExtJS 4的Model-View-Controller(MVC)架构来实现...

    ExtJS4 MVC演示项目

    MVC(Model-View-Controller)模式是软件设计中的一个经典模式,它在ExtJS4中被广泛应用,以实现可维护性和可扩展性的增强。这个"ExtJS4 MVC演示项目"是一个很好的学习资源,可以帮助开发者了解如何在实际应用中组织...

    ExtJS4 MVC 混合实例

    本实例是针对新手级别的学习资料,旨在帮助初学者理解并掌握ExtJS4中的MVC模式。 MVC模式是一种软件设计模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。在ExtJS4中,这...

    springmvc+extjs4mvc实现权限管理

    本项目"springmvc+extjs4mvc实现权限管理"是利用SpringMVC框架和ExtJS4MVC技术来搭建一个完整的权限控制系统,旨在提供精细的用户、角色和资源的权限分配。 首先,SpringMVC作为Java Web开发中的主流MVC框架,以其...

    EXTJS4 MVC+ASP.NET MVC3动态加载JS文件实例

    本例采用ASP.NET MVC3 +EXTJS4 MVC 框架,完美实现了EXTJS4动态加载JS文件,对ASP.NET MVC3及EXTJS4 MVC 各应用要点进行了应用。对于想采用ASP.NET MVC3 +EXTJS4 MVC 框架的学习者有很好的帮助,快速掌握MVC框架,本...

    Extjs4 mvc+struts 应用例子

    在"Extjs4 mvc+struts 应用例子"中,我们看到的是一个利用这两者技术实现的网格(grid)功能。Grid是ExtJS中的核心组件之一,用于展示大量结构化的数据,并支持排序、筛选、分页等功能。在这个例子中,我们将学习...

    ExtJS 4 MVC

    ExtJS 4 MVC是一个强大的前端开发框架,它利用模型-视图-控制器(Model-View-Controller)架构模式,帮助开发者构建复杂、可维护的Web应用程序。MVC是一种设计模式,它将应用程序的不同部分分离出来,使代码更易于...

    extjs4 mvc skel-master

    ExtJS 4 MVC Skel Master 是一个基于ExtJS 4框架的MVC(Model-View-Controller)架构的项目模板,适用于快速构建复杂的Web应用程序。这个压缩包包含了一个基础的MVC项目结构,帮助开发者更好地理解和应用ExtJS的MVC...

    ExtJs 4 MVC 新机制测试源码奉献

    ExtJs 4 用了一段时间了,今天研究了下ExtJs4的MVC机制,感觉还挺好,建议大家尝试,所以就写了一个demo,帮助那些对ExtJs还不是很懂,或者想用ExtJs4却又不知道怎么做好的朋友。。。多余话不说了大家如果有什么不...

    Extjs4 MVC模式浅析.pdf

    《Extjs4 MVC模式浅析》 Extjs4在开发大型客户端程序时,引入了MVC(Model-View-Controller)架构,以解决代码组织和维护的难题。MVC架构是一种设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View...

    Extjs4MVC后台管理程序实现[参照].pdf

    《ExtJS4 MVC后台管理程序实现详解》 ExtJS是一个强大的JavaScript前端框架,它提供了丰富的组件库和MVC(Model-View-Controller)设计模式,用于构建复杂的Web应用程序,特别是后台管理系统。本篇将深入探讨如何...

    Extjs4MVC后台管理程序实现.pdf

    《ExtJS4 MVC后台管理程序实现》 ExtJS4是一个强大的JavaScript前端框架,它采用Model-View-Controller(MVC)设计模式,使得构建复杂的Web应用程序变得更加容易和高效。MVC模式是软件工程中的一种设计模式,它将...

    springmvc+hibernate+extjs4mvc 权限管理

    springmvc+hibernate+extjs4mvc 权限管理springmvc+hibernate+extjs4mvc 权限管理springmvc+hibernate+extjs4mvc 权限管理

Global site tag (gtag.js) - Google Analytics