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

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

 2010-04-13 00:00:00 来源:WEB开发网   
核心提示: 清单 21. 修改后的 Controller.jsif(!dojo._hasResource["taas._base.Controller"]){dojo._hasResource["taas._base.Controller"]=true;dojo.pr

清单 21. 修改后的 Controller.js

 if (!dojo._hasResource["taas._base.Controller"]) { 
 dojo._hasResource["taas._base.Controller"] = true; 
 dojo.provide("taas._base.Controller"); 
 dojo.declare("taas._base.Controller",null,{ 
 }); 
 taas._base.Controller.remoteUpdate = function (dataModelUri,topic,requestContent){ 
  _topic = topic; 
  _dataModelUri = dataModelUri; 
  _requestContent = requestContent; 
  console.debug(_requestContent); 
  var doResponse = function (responseText){ 
   dojo.forEach(_topic,function(item){ 
    var jsonObj = dojo.fromJson(responseText)[item]; 
    //console.debug(dojo.toJson(jsonObj)); 
    dojo.publish(item,[dojo.toJson(jsonObj)]);  
   });   
  }; 
  var getFormJson = function() {    
   dojo.xhrGet({ 
    url: _dataModelUri, 
    preventCache: true, 
    content:_requestContent, 
    handleAs: "text", 
    method:"get", 
    load: doResponse 
   }); 
  }; 
  var getFromForm = function() { 
   dojo.xhrGet({ 
    url: _dataModelUri, 
    preventCache: true, 
    form:_requestContent, 
    handleAs: "text", 
    method:"get", 
    load: doResponse 
   }); 
  };   
  var doRequest = function () {   
   if(dojo.isObject(_requestContent)) { 
    getFormJson(); 
   } 
   else if(dojo.isString(_requestContent)){ 
    getFromForm(); 
   } 
  };   
  doRequest();   
 }  
 } 

如何使用

 <input type="button" 
  , ["projects"], { 
    'action' : 'querybyuserid' 
   });” 

清单中代码中 onclick 属性调用了 Controller 的 remoteUpdate 方法,该方法将调用远程 servlet 的 doGet/doPost 方法,并将相应的请求参数发给远程 servlet。远程 servlet 收到请求后进行相应的业务逻辑处理,最后将处理结果返回到 controller 的回调函数执行从而刷新视图。

结束语

使用 web2.0 的 MVC 模式,使我们能更加关于与业务逻辑的实现,而不用纠缠与服务器端数据模型与 web 页面的展示如何同步。

上一页  3 4 5 6 7 8 

Tags:基于 Dojo toolkit

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