`
atell
  • 浏览: 161644 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

[Playframework文档中文翻译]Play 中如何使用 Ajax

阅读更多

(原文链接:http://play-framework.herokuapp.com/zh/ajax " ) 来自"Playframework中文小站 " )

Play 中如何使用 Ajax

本章译者:@freewind

Play在内部使用了 jQuery 这个JavaScript库,让我们能够非常方便的进行Ajax操作。同时,为了能在JavaScript中方便地生成某个action对应的Url,Play还提供了一个 jsAction 标签,简化操作。

配合jQuery使用jsAction标签

在play的页面中,如果我们想取得某action对应的url,通常不会直接写出一个url,而是像Java那样写成一个函数调用,由Play解析并生成。这么做的好处是,可以让Play检查我们的调用有没有错,不会产生错误的URL。

举例说明,我们在routes文件中,定义了以下的一个route:

GET     /hotels/list        Hotels.list


其中, Hotels.list 有三个参数 search, size, page 。如果我们想得到它对应的URL,会这么做:

@{Hotels.list('x', 10, 1)}


注意,参数值必须指定好。最终我们将得到一个这样的URL:

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


但有些时候,参数值无法事先确定。比如我们想在JavaScript中,利用Ajax的方法访问这个URL,而参数值是根据由用户输入的,怎么办?

#{jsAction /} 标签就是为了解决这个问题,它的作用是生成一个JavaScript函数,调用该函数并传入一些参数后,会生成相应的正确的url。

先写一段完整些的例子:

<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>


在本例中,我们使用了 jsAction 。其中这一行代码:

var listAction = #{jsAction @list(':search', ':size', ':page') /}


将生成以下内容:

var listAction = function(options) {
	var pattern = '/hotels/list?page=:page&search=:search&size=:size'; 
	for(key in options) { pattern = pattern.replace(':'+key, options[key]); } 
	return pattern 
}


可以看到,它的原理非常简单:构造一个url,里面有一些占位符,将会被替换为真实的数据。

所以后面的 listAction({search: 'x', size: '10', page: '1'}) 调用listAction后,将返回一个正确的Url: /hotels/list?page=10&search=x&size=1

如果我们不使用 listAction 标签,也得自己写一个类似的函数。

另外, .load() 函数是由jQuery提供的,它将发起一个Ajax GET请求,请求地址为它的第一个参数。第二个参数是一个函数,将在成功收到回复后被调用。

最终,这段代码发送的请求如下:

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


返回值将会是一些HTML代码,这些代码将会替换掉 #result 中的内容。

除了HTML,jQuery还可以处理JSON或XML类型的返回值。我们只需要在对应的controller中,使用不同的render方法即可(如renderJSON, renderXML, 或者直接使用render去处理一个XML模板)。

有关jQuery的详细信息,可参考 jQuery 官方文档。

另外,如果我们需要发送一个POST请求,可以使用以下的代码:

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


继续讨论

处理 国际化 .

(原文链接:http://play-framework.herokuapp.com/zh/ajax " ) 来自"Playframework中文小站 " )

分享到:
评论

相关推荐

    play框架手册

    11.在play框架里使用Ajax - 94 - 通过jsAction标签使用jQuery - 95 - 12. Internationalization国际化支持 - 96 - 仅使用 UTF-8! - 96 - 国际化你的信息 - 96 - 通过应用程序定义支持的语言 - 96 - 依照你的区域定义...

    DSCommon:一个在 Play Framework 1.2+ 上加速开发过程的库,为数据建模、文档流实现、数据安全、CRUD 屏幕表单带来扩展功能

    DSCommon 是一个专为 Play Framework 1.2+ 版本设计的库,旨在提高开发效率,特别是对于那些涉及数据管理、文档处理、安全性以及用户界面构建的应用程序。这个库通过提供一系列预先封装好的功能,使得开发者能够更快...

    swagger-play

    3. **JavaScript编程**:掌握在Play应用中使用JavaScript进行前端开发,如使用jQuery或其他库处理DOM操作、异步请求等。 4. **API文档生成**:理解如何通过Swagger工具自动生成API文档,提高开发效率和API的可维护...

    达内培训java代码

    在Java后端,你可以使用Spring Framework、Struts2或者Play Framework等来处理业务逻辑和数据访问,然后通过Ajax将数据传递给前端。前端则利用jQuery处理接收到的数据,更新DOM,实现动态视图。 学习这个压缩包,你...

    人人乐超市采购管理系统源码&java毕业设计(完整前后端+数据库+说明文档+LW).zip

    LW框架可能是轻量级Web框架的一个简称,例如Struts2或Play Framework,它简化了Web应用的开发,提供了MVC模式的实现,帮助开发者快速构建功能模块。 项目附带的“ssm项目说明文档”会详细介绍系统的架构设计、功能...

    框架笔试-tang.docx

    * Play Framework 分析这些 Web 框架的优缺点包括: * Spring MVC:优点是轻量级、灵活、可扩展性强;缺点是学习曲线陡峭 * Struts 2.0:优点是功能强大、可扩展性强;缺点是配置复杂、学习曲线陡峭 * Hibernate:...

    基于Java的轻量级的MVC框架应用实例.zip

    描述中的".zip"文件可能包含了使用上述框架之一创建的示例项目代码,如源代码文件、配置文件、以及可能的文档说明。codefans.net可能是项目的来源或者是一个讨论该话题的在线社区。 1. **Spring MVC**:Spring是最...

    jclouds-rest-client-archetype-1.5.3.zip

    这里提到的Java后端可能使用了Spring、Play或其他Java Web框架,展示了如何在Java环境中构建RESTful API以与前端进行通信。 标签 "开源项目" 指出这个压缩包中的内容是开放源代码的,意味着公众可以自由查看、使用...

    BaseEmprego:IT领域就业机会的基地登记

    6. **前端框架**:如果项目中使用了React或Angular,需要学习这些框架的组件系统、状态管理以及生命周期方法。 通过对这些技术的熟练掌握,开发者可以有效地参与到BaseEmprego项目中,进行代码开发、调试和维护,...

    tweet-miner:此应用程序基于用户输入的搜索关键字,使用twitter4j API从twitter.com获取了推文。 它还具有其他功能,例如搜索有关地理位置,主题标签等的推文。甚至可以显示用户个人资料。 此外,还可以执行复杂的操作,例如情感分析和单词计数

    后端则采用了Scala和Play Framework,后者是一个基于Java和Scala的Web应用框架,提供了快速开发、可测试性和异步I/O的能力。单元测试方面,应用可能使用了JUnit4进行Java代码的测试,而Scala部分可能使用了ScalaTest...

    Java_A markdown editor that you can deploy on your own serv.zip

    5. **Java Web框架**: 开发这样一个编辑器可能使用了Spring Boot、Play Framework或者Vaadin等Java Web框架,它们能简化开发过程,提供MVC架构、自动化配置和丰富的库支持。 6. **数据库管理**: 数据存储可能涉及到...

    java web api

    在Java Web开发中,通常会配合使用AJAX(Asynchronous JavaScript and XML)技术,使页面能在不刷新整个页面的情况下与服务器进行异步通信。 6. **MVC模式**:Model-View-Controller(MVC)是一种常见的软件设计...

    inspinia_admin-v2.8.zip

    10. **文档支持**:Inspinia Admin提供了详细的文档,指导开发者如何使用模板、自定义样式、配置组件等,降低了学习和使用的门槛。 总的来说,Inspinia Admin v2.8是一个全面且功能强大的后台模板,无论你是新手...

    java web框架开发技术

    Java Web 框架包括多种类型,如 Struts2、Spring MVC、Play Framework 等。 二、Struts2 框架概述 Struts2 是一个基于 Java 语言的开源 Web 应用程序框架,由 Apache 软件基金会提供。Struts2 框架提供了一个灵活...

    BBS.rar_bbs_发帖_论坛_论坛网页

    1. **Web开发框架**:Java有许多用于开发Web应用的框架,如Spring MVC、Struts2或Play Framework等。这些框架提供了处理HTTP请求、渲染视图、管理业务逻辑和持久化数据的能力,简化了Web开发过程。 2. **Servlet和...

    Java Web开发

    10. **Web框架**:除了基本技术,Java Web开发者还应掌握至少一种Web框架,如Spring、Struts或Play Framework,它们提供了一套完整的解决方案,简化了开发流程,提高了代码可维护性和可扩展性。 以上是Java Web开发...

    struts2 api

    Struts2 API是Java Web开发中的一个重要组成部分,它是一个基于MVC(Model-View-Controller)设计模式的开源框架,...同时,了解Struts2也能为学习其他Java Web框架,如Spring MVC或Play Framework,打下坚实的基础。

    struts 基础入门

    Struts 是一个开源的Java Web框架,由Apache软件基金会维护,用于构建企业级的MVC(Model-...通过掌握Struts的基础知识,你可以更高效地开发Web项目,并为进一步学习其他框架如Spring MVC或Play Framework奠定基础。

    shared-calendars

    综上所述,共享日历应用的开发涉及了Java8的基础和高级特性,Play Framework的使用,数据库管理,权限控制,以及前端开发。每一个环节都需要扎实的技术基础和实践经验,才能构建出稳定、安全且用户友好的共享日历...

Global site tag (gtag.js) - Google Analytics