WEB开发网
开发学院软件开发Java 精通 Grails: 用 JSON 和 Ajax 实现异步 Grails 阅读

精通 Grails: 用 JSON 和 Ajax 实现异步 Grails

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 刷新浏览器,确认在提供一个目的地机场之后会显示超级链接,精通 Grails: 用 JSON 和 Ajax 实现异步 Grails(10),如图 6 所示: 图 6. 显示 Show Nearby Hotels 超级链接图片看不清楚?请点击这里查看原图(大图),现在,因为正在调用一个远程服务(尽管

刷新浏览器,确认在提供一个目的地机场之后会显示超级链接,如图 6 所示:

图 6. 显示 Show Nearby Hotels 超级链接

精通 Grails: 用 JSON 和 Ajax 实现异步 Grails

  图片看不清楚?请点击这里查看原图(大图)。

现在,需要创建 loadHotels() 函数。

进行 Ajax.Remote 调用

在 plan.gsp 中的脚本块中添加一个新函数,如清单 18 所示:

清单 18. 实现 loadHotels()

function loadHotels(){ 
 var url = "${createLink(controller:'hotel', action:'near')}" 
 url += "?lat=" + airportMarkers[1].getLatLng().lat() 
 url += "&lng=" + airportMarkers[1].getLatLng().lng() 
 new Ajax.Request(url,{ 
  onSuccess: function(req) { showHotels(req) }, 
  onFailure: function(req) { displayError(req) } 
 }) 
} 

在这里使用 Grails createLink 方法是安全的,因为当在服务器端呈现页面时,Hotel.near() 的 URL 的基本部分是不变的。可以使用客户端 JavaScript 将 URL 的动态部分附加上去,然后使用熟悉的 Prototype 调用发出 Ajax 请求。

处理错误

为了简单起见,我在 <g:formRemote> 调用中省略了错误处理。因为正在调用一个远程服务(尽管是通过一个本地控制器代理),所以提供某种反馈总比静默失败更好。将 displayError() 函数添加到 plan.gsp 中的脚本块中,如清单 19 所示:

上一页  5 6 7 8 9 10 

Tags:精通 Grails JSON

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