`
belmount
  • 浏览: 49143 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
阅读更多
一个生于2005年以后的网站,如果没有AJAX的元素在里面,只能说这个站点已经out了。作为一个在AJAX大行其道的年代里诞生的快速开发框架,GRAILS对AJAX应用开发的支持那是相当的到位。至少,在我看来,除了updater有时候跳到其它地方去,其他的简直是完美。

首先,GRAILS定义了一系列的tags从而使AJAX应用变得简单。这些AJAX相关的Tag,名称中都包含有remote这个单词。他们包括:formRemote,remoteField,remoteFunction,remoteLink。GRAILS默认在main.gsp里加载了prototype的js库,因此只要我们新作的gsp文件使用的是main的layout,这些tag就都可以放心的使用。否则的话,就会在加载的时候出现javascript错误。从实践上而言,我很喜欢formRemote这个tag,因为象查询这种操作用formRemote就可以简单的实现。但是,实践中也经常发现在页面没有任何javascript错误,remote调用成功的情况下,页面不按照预期去更新指定的div,而是按照默认的form post处理那样进行页面跳转。有时候更改了div的id就可以解决,有时候进行多次页面刷新也可以解决。不过,这样的体验不论如何都是会让开发人员抓狂的。所以,个人认为还不如直接用jquery的库手写来得稳当。也不需要几行代码。如果实在觉得麻烦就自己定义一个tag。(由于GRAILS的自定义tag实在是太好写了,我们的一个开发人员没事就问我是不是应该加个tag,真是勤奋的让我感动 。)
从服务器端的AJAX响应的编写来看,最重要的就是render和template两个东西。由于我们荣幸的生活在一个文字很有艺术感的国度里,也就造成在电脑上作相同的事情必须付出比其他一些只会用字母拼字的民族更多的努力。GRAILS在flash对象里面存放中文消息默认的是可以用UTF-8正常表示的,但是如果用render直接输出中文消息,则必须下面这段代码通过转换,否则将会是乱码。
render(text:"中文",contentType:'text/plaintext',encoding:"UTF-8")

这样就能够将简单的消息显示到客户端。
但是对于像查询结果这样的复杂的列表,怎么作才能更简单呢。一种做法是将结果以xml或者json的格式存放,然后返回给客户端。客户端的js再根据返回的数据将结果用js的一些UI widget表现出来。这个代码量说多不多,说少不少,反正我是不想写的。我觉得最好用的一种方法就是用template,改动一下命令行生成的list.gsp就可以用来充当查询结果的template。如果我们稍微放弃一下拷贝粘贴,把template共用起来,这样还能真正的实现DRY,何乐而不为。(注:关于template的使用,请参照有关文档,这里不再多说。需要注意的是,在template出错的时候,错误源gsp的名称格式是${controllername}__${templatename}。这里用的是groovy语法,请注意连接两个名称的是两个_。)

分享到:
评论

相关推荐

    grails ajax

    标题"grails ajax"表明我们将探讨如何在Grails应用中有效地使用Ajax技术。Ajax允许后台与服务器进行异步数据交换,而无需重新加载整个网页。这在动态数据展示、表单提交、实时更新等场景中特别有用。 在Grails中,...

    grails 使用ajax的例子

    在Grails框架中,Ajax是一种常用的前端技术,用于实现页面的部分刷新,提高用户体验。本教程将深入探讨如何在Grails应用中使用Ajax,通过几个实际的例子来帮助理解其工作原理和常见用法。 1. **Ajax简介** Ajax...

    精通 Grails 使用 Ajax 实现多对多关系

    本文将深入探讨如何使用Grails的GORM(Grails Object-Relational Mapping)API以及Ajax技术来实现这种复杂的关系。 首先,了解多对多关系的基本概念。在多对多关系中,两个实体类之间存在一对多的双向关联,即每个...

    Ajax Development With Grails Dojo

    ### Ajax Development with Grails and Dojo #### 一、引言 在当今的Web开发领域,Ajax技术已经成为了提升用户体验的重要手段之一。它允许网页在不重新加载整个页面的情况下更新部分数据,从而提供了更加流畅的交互...

    精通Grails 之用 JSON 和Ajax 实现异步Grails(pdf电子书)

    ### 精通Grails之用JSON和Ajax实现异步Grails #### 一、引言 随着Web 2.0技术的发展,JSON (JavaScript Object Notation) 和 Ajax (Asynchronous JavaScript + XML) 成为现代Web应用开发的重要组成部分。本文旨在...

    Groovy轻松入门——Grails实战基础篇

    ### Groovy轻松入门——Grails实战基础篇 #### 搭建Grails环境及创建Grails Demo程序 **Groovy**是一种面向对象的编程语言,它运行于Java平台上,能够与Java代码无缝集成。而**Grails**则是一款基于Groovy的高性能...

    the definitive guide to grails 2

    Grails框架集成了对Ajax的支持,使得开发者可以轻松地创建异步Web应用程序。通过Ajax,Web应用可以实现无刷新的数据更新,提高了用户交互性和应用响应速度。 #### GORM(Grails Object Relational Mapping) GORM...

    grails快速开发web

    - **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中实现 Ajax 功能、处理遗留数据库的方法、利用遗留框架以及如何在 Grails 中使用 WebFlow。 - **高效编程系列**:涵盖使用 ...

    Grails权威指南.pdf

    - **AJAX in Grails**:书中会介绍如何使用jQuery或其他库实现异步更新,提升用户体验。 - **Remote Function Calls (RFC)**:通过AJAX调用控制器的方法,实现页面部分更新。 6. **Java平台集成**: - **...

    Grails权威指南 中文版

    此外,书中还介绍了控制器的使用方法、Grails的高级视图技术GSP、以及如何在Grails项目中使用Ajax技术来增强用户体验。 除了上述内容,本书还探讨了Grails的高级特性,例如安全性、缓存和事务管理等。并且,由于...

    Grails 下拉框联动最优实现

    在Grails中,我们可以利用AJAX技术实现这种交互,AJAX即异步JavaScript和XML,它允许页面在不刷新整个页面的情况下与服务器交换数据并局部更新页面内容。这正是实现联动效果的关键,因为它能让用户体验更加流畅,...

    grails 1.0.4

    Grails的出现并不是偶然的,而是随着Web应用的日趋复杂及Web2.0和Ajax的悄然兴起发展起来的。不过在我们继续介绍Grails之前,有必要先探究一下如今其他的Java框架及他们的用户体验,因为正是他们的积累,才会产生...

    Grails 和 jQuery开发实例

    Grails是一个基于Java平台的全栈式框架,它简化了Web应用的开发过程,而jQuery则是一款强大的JavaScript库,能够帮助我们实现高效的DOM操作、事件处理以及Ajax交互。 首先,Grails的MVC架构使得开发者可以快速搭建...

    grails 文档

    Grails 的强大之处在于其插件生态,如Security、Spring Security Core、Cache、Ajax等,它们提供开箱即用的功能,减少重复造轮子的工作。 6. **Grails URL 映射** 通过配置URL映射,Grails允许开发者定义清晰、...

    Grails Jquery 集成代码

    无论是DOM操作、事件处理、动画效果,还是Ajax通信,JQuery都能为你的Grails应用带来更优秀的交互体验。不过,要注意保持代码组织的清晰,避免过度依赖JQuery,适时考虑使用现代JavaScript库或框架,如React或Vue.js...

    Grails权威指南

    第1章 寻找grails之旅  1.1 java的困惑  1.2 webc2.0时代  1.3 java的力量  1.4 什么是grails  1.4.1 与java集成  1.4.2 简单而强大  1.4.3 吸取的经验教训  1.5 使用grails的原因 ...

    Groovy轻松入门—Grails实战基础篇

    3. **Grails插件系统**:Grails的强大之处在于其丰富的插件库,这些插件可以快速集成到项目中,如Spring Security用于安全控制,Grails Cache提供缓存功能,或是Ajax插件增强用户体验。学习如何安装和使用这些插件将...

    学生管理系统课程设计(grails)

    例如,可以创建一个`student_list.gsp`页面,展示所有学生信息,并通过AJAX实现无刷新的查询和分页功能。 五、查询功能与安全性 查询功能通常通过控制器(Controllers)实现,它们接收用户的请求,调用服务层...

Global site tag (gtag.js) - Google Analytics