Play 中如何使用 Ajax
本章译者:@freewind
Play在内部使用了 jQuery
这个JavaScript库,让我们能够非常方便的进行Ajax操作。同时,为了能在JavaScript中方便地生成某个action对应的Url,Play还提供了一个 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);
});
继续讨论
处理 国际化
.
相关推荐
11.在play框架里使用Ajax - 94 - 通过jsAction标签使用jQuery - 95 - 12. Internationalization国际化支持 - 96 - 仅使用 UTF-8! - 96 - 国际化你的信息 - 96 - 通过应用程序定义支持的语言 - 96 - 依照你的区域定义...
DSCommon 是一个专为 Play Framework 1.2+ 版本设计的库,旨在提高开发效率,特别是对于那些涉及数据管理、文档处理、安全性以及用户界面构建的应用程序。这个库通过提供一系列预先封装好的功能,使得开发者能够更快...
3. **JavaScript编程**:掌握在Play应用中使用JavaScript进行前端开发,如使用jQuery或其他库处理DOM操作、异步请求等。 4. **API文档生成**:理解如何通过Swagger工具自动生成API文档,提高开发效率和API的可维护...
在Java后端,你可以使用Spring Framework、Struts2或者Play Framework等来处理业务逻辑和数据访问,然后通过Ajax将数据传递给前端。前端则利用jQuery处理接收到的数据,更新DOM,实现动态视图。 学习这个压缩包,你...
LW框架可能是轻量级Web框架的一个简称,例如Struts2或Play Framework,它简化了Web应用的开发,提供了MVC模式的实现,帮助开发者快速构建功能模块。 项目附带的“ssm项目说明文档”会详细介绍系统的架构设计、功能...
* Play Framework 分析这些 Web 框架的优缺点包括: * Spring MVC:优点是轻量级、灵活、可扩展性强;缺点是学习曲线陡峭 * Struts 2.0:优点是功能强大、可扩展性强;缺点是配置复杂、学习曲线陡峭 * Hibernate:...
描述中的".zip"文件可能包含了使用上述框架之一创建的示例项目代码,如源代码文件、配置文件、以及可能的文档说明。codefans.net可能是项目的来源或者是一个讨论该话题的在线社区。 1. **Spring MVC**:Spring是最...
这里提到的Java后端可能使用了Spring、Play或其他Java Web框架,展示了如何在Java环境中构建RESTful API以与前端进行通信。 标签 "开源项目" 指出这个压缩包中的内容是开放源代码的,意味着公众可以自由查看、使用...
6. **前端框架**:如果项目中使用了React或Angular,需要学习这些框架的组件系统、状态管理以及生命周期方法。 通过对这些技术的熟练掌握,开发者可以有效地参与到BaseEmprego项目中,进行代码开发、调试和维护,...
后端则采用了Scala和Play Framework,后者是一个基于Java和Scala的Web应用框架,提供了快速开发、可测试性和异步I/O的能力。单元测试方面,应用可能使用了JUnit4进行Java代码的测试,而Scala部分可能使用了ScalaTest...
5. **Java Web框架**: 开发这样一个编辑器可能使用了Spring Boot、Play Framework或者Vaadin等Java Web框架,它们能简化开发过程,提供MVC架构、自动化配置和丰富的库支持。 6. **数据库管理**: 数据存储可能涉及到...
在Java Web开发中,通常会配合使用AJAX(Asynchronous JavaScript and XML)技术,使页面能在不刷新整个页面的情况下与服务器进行异步通信。 6. **MVC模式**:Model-View-Controller(MVC)是一种常见的软件设计...
10. **文档支持**:Inspinia Admin提供了详细的文档,指导开发者如何使用模板、自定义样式、配置组件等,降低了学习和使用的门槛。 总的来说,Inspinia Admin v2.8是一个全面且功能强大的后台模板,无论你是新手...
Java Web 框架包括多种类型,如 Struts2、Spring MVC、Play Framework 等。 二、Struts2 框架概述 Struts2 是一个基于 Java 语言的开源 Web 应用程序框架,由 Apache 软件基金会提供。Struts2 框架提供了一个灵活...
1. **Web开发框架**:Java有许多用于开发Web应用的框架,如Spring MVC、Struts2或Play Framework等。这些框架提供了处理HTTP请求、渲染视图、管理业务逻辑和持久化数据的能力,简化了Web开发过程。 2. **Servlet和...
10. **Web框架**:除了基本技术,Java Web开发者还应掌握至少一种Web框架,如Spring、Struts或Play Framework,它们提供了一套完整的解决方案,简化了开发流程,提高了代码可维护性和可扩展性。 以上是Java Web开发...
Struts2 API是Java Web开发中的一个重要组成部分,它是一个基于MVC(Model-View-Controller)设计模式的开源框架,...同时,了解Struts2也能为学习其他Java Web框架,如Spring MVC或Play Framework,打下坚实的基础。
Struts 是一个开源的Java Web框架,由Apache软件基金会维护,用于构建企业级的MVC(Model-...通过掌握Struts的基础知识,你可以更高效地开发Web项目,并为进一步学习其他框架如Spring MVC或Play Framework奠定基础。
综上所述,共享日历应用的开发涉及了Java8的基础和高级特性,Play Framework的使用,数据库管理,权限控制,以及前端开发。每一个环节都需要扎实的技术基础和实践经验,才能构建出稳定、安全且用户友好的共享日历...