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

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

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 现在,您有了一个可用的宾馆列表,精通 Grails: 用 JSON 和 Ajax 实现异步 Grails(7),接下来需要为其创建一个控制器方法,就像为 AirportMapping.iata() 创建该方法一样,因此必须显式地将 MIME-type 设置为 application/json,除

现在,您有了一个可用的宾馆列表,接下来需要为其创建一个控制器方法,就像为 AirportMapping.iata() 创建该方法一样。

创建用于发出远程 JSON 请求的控制器方法

在本文的前面,您已经创建了一个 HotelController。将清单 15 中的 near 闭包添加到其中。(您在 “Grails 服务和 Google 地图” 中已经看到了类似的代码)。

清单 15. HotelController

class HotelController { 
 def scaffold = Hotel 
 def near = { 
  def addr = "http://local.yahooapis.com/LocalSearchService/V3/localSearch?" 
  def qs = [] 
  qs << "appid=YahooDemo" 
  qs << "query=hotel" 
  qs << "sort=distance" 
  qs << "output=json" 
  qs << "latitude=${params.lat}" 
  qs << "longitude=${params.lng}" 
  def url = new URL(addr + qs.join("&")) 
  render(contentType:"application/json", text:"${url.text}") 
 } 
} 

所有查询字符串参数都是硬编码的,但最后两个除外:latitude 和 longitude。倒数第二行实例化一个新的 java.net.URL。最后一行调用服务(url.text),并呈现结果。由于没有使用 JSON 转换器,因此必须显式地将 MIME-type 设置为 application/json。除非特意设置,否则 render 会返回 text/plain。

在浏览器中输入下面的内容(不要换行):

http://localhost:9090/trip/hotel/near?lat= 
  39.858409881591797&lng=-104.666999816894531 

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

Tags:精通 Grails JSON

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