Play 框架手册(11) – 在 play 框架里使用 Ajax


play 框架允许你很容易执行 ajax 请求, 它默认使用 jQuery 作为实现。本节我 们将描述如何在框架里有效使用 jQuery。

play框架同时带来了方便的 jsAction标签, 用于透明地从控制器得到方法定义。   

11.1. 通过 jsAction 标签使用 jQuery

#{jsAction /}标签返回一个 JavaScript 函数,它包含了基于服务器动作的 URL 和可用的变量。它不能执行 AJAX 请求,这些都必须使用返回的 URL 通过手工进 行处理。

示例:

GET     /hotels/list        Hotels.list

现在就可以导入这些路由客户端:

<script type="text/javascript">
   var listAction = #{jsAction @list(':search', ':size', ':page') /}
   $('#result').load(
       listAction({search: 'x', size: '10', page: '1'}),
       function() {
           $('#content').css('visibility', 'visible')
       }
   )
</script>

在这个示例里,我们从默认的 Application 控制器里请求方法列表。同时传递了 三个参数:  search, size 和 page。我们执行的请求操作之后被存入 listAction  变量。现在就可以使用 jQuery 和 load 函数了。

事实上,下面的请求会被发送:

GET /hotels/list?search=x&size=10&page=1

在这种情况下,这个请求将返回 HTML 数据。

然后,也可使用 jQuery 对数据进行整理后返回 JSON 或 XML。在控制器里,使用 适当的 render 方法(renderJSON, renderXML 或 XML 模板)

参考 jQuery 文档可获取更多信息。

请注意,我们也可执行 POST,对应的 jQuery 方法应该调整为:

$.post(listAction(), function(data) {
  $('#result').html(data);
});

 


前一篇:
后一篇:

发表评论