WEB开发网
开发学院软件开发Java 基于 Dojo toolkit 实现 web2.0 的 MVC 模式 阅读

基于 Dojo toolkit 实现 web2.0 的 MVC 模式

 2010-04-13 00:00:00 来源:WEB开发网   
核心提示: 清单中的代码实现了自定义的视图刷新规则 updateView,该函数被动态绑定到 LinkPane widget 对象中,基于 Dojo toolkit 实现 web2.0 的 MVC 模式(7),清单 16. ProjectList 模型 .functionProjectList(uri){t

清单中的代码实现了自定义的视图刷新规则 updateView,该函数被动态绑定到 LinkPane widget 对象中。

清单 16. ProjectList 模型 .

 function ProjectList(uri) { 
 this.uri = uri; 
 } 
ProjectList.prototype = new taas._base.DataModel(this.uri); 
Var projectListModel = new ProjectList(“http://localhost:8080/servlet/ProjectManagement”) 

清单中的代码从 DataModel 抽象对象中派生出 ProjectList 对象模型以供 LinkPane 使用。

清单 17. 模型与视图绑定 .

 var myLinkPane = new taas.layout.LinkPane({},”linkpane01”). 
 projectListModel.registerView(myLinkPane); 

清单 18. controller 与远程 servlet 通信 .

 <input type="button" 
 > 
 </input> 

清单中代码假设我们在页面中使用了一个 button,button 的 onclick 事件调用 controller 的 remoteUpdate 方法与 Model 中对应的 servlet 通讯。

图 2 程序执行过程。Sequence 图。

第三部分 使用 dojo 的 subscribe 和 publish 方式简化代码

由于 dojo1.2 版本已经提供 subscribe/publish 消息通知机制,所以可以将 model 与 view 的关系使用 subscribe/publish 机制来简化。简化后 model 被 subscribe/publish 机制中的 topic 代替 .

下面为简化后的代码。

清单 19. 修改后的 VIEW.js

 if (!dojo._hasResource["taas._base.View"]) { 
 dojo._hasResource["taas._base.View"] = true; 
 dojo.require("dijit._Widget"); 
 dojo.require("dijit._Templated"); 
 dojo.provide("taas._base.View"); 
 dojo.declare("taas._base.View",null,{ 
  _model:null, 
  topic:"", 
  _taasSrcPath:dojo.moduleUrl("taas",""), 
  responseObject:null, 
  refresh:function(object){ 
   this.responseObject = object;   
   if(this.updateView!=undefined&&typeof this.updateView=="function"){ 
    this.updateView(this.responseObject); 
   } 
  }, 
  bindModel:function(dataModel){ 
   this._model = dataModel;    
  }, 
  _bindTopic:function(){    
   if(this.topic!=undefined&&this.topic!=""){ 
    dojo.subscribe(this.topic,this,"refresh"); 
   } 
  } 
 }); 
 } 

上一页  2 3 4 5 6 7 8  下一页

Tags:基于 Dojo toolkit

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接