我用的是groovy1.5和grails1.03,在使用<g:paginate/>标签的时候发现,不支持查询结果的分页显示,所以做了一些小改动,现在终于实现了。
首先找到<g:paginate/>标签所对应的groovy文件,在grails原文件夹的src\groovy\org\codehaus\groovy\grails\plugins\web\taglib下的RenderTagLib.groovy。
好了,我看了看,不支持查询结果分页的问题找到了,分页的时候没有将查询参数带上。好了,那么我就让它带上吧,于是我在grails-app\taglib\目录下新建了一个
MytagTagLib.groovy,然后将RenderTagLib.groovy的内容全部copy过来,修改paginate方法名为paginate2(以免调用时重叠),在RenderTagLib.groovy中227行的
if(attrs.params) linkParams.putAll(attrs.params)
修改为
if(attrs.params && attrs.params=="form"){
linkParams.putAll(params)
}
由于params中有上次查询过的所有条件,所以将它直接传到后台就可以了。好了,这里&& attrs.params=="form"是我自己加上的以区别默认的查询分页,这样页面上也要做一点小改动
<g:paginate2 total="${flash.varName==null?0:flash.varName}" action="search" params="form"/>
好了,参数传递可以解决了,还有一个问题就是total的问题,你应该已经看到了,我在上面用的是flash.varName这个变量来传递total的,来看看我后台处理查询的代码:
def search = {
def _max = params.max?params.max:10
def results = Kmfile.findAllByFileNameLikeAndFileTypeLike(
'%'+params.fileName +'%',
'%'+params.fileType +'%',
[max:_max,offset:params.offset]
)
flash.varName=Kmfile.countByFileNameLikeAndFileTypeLike(
"%${params.fileName}%","%${params.fileType}%")
//设置显示用select内容
params.ft_inlist = Kmfile.constraints.fileType.inList;
render(view:'search',model:[kmfileList:results])
}
countBy*用来计算总数很方便,之后它赋值给flash.varNaem,这样页面上就可以引用了。
好了,这就是我的简单的解决办法,当然默认用get方法传递参数有长度限制,有时间再改进吧!
分享到:
相关推荐
综上所述,Grails的查询机制强大而灵活,通过GORM提供的各种工具,开发者可以轻松地处理数据操作,实现高效的数据查询。结合源码阅读和工具使用,能更好地理解和优化Grails中的数据查询性能。在实际项目中,理解并...
Grails支持动态查询,允许开发者通过简单的表达式进行复杂的数据库查询。同时,为了确保系统安全性,可以使用Spring Security插件来实现用户认证和授权,限制未授权访问。 六、分页功能 实现分页功能,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的原因 ...
Grails提供了一种快速开发模型,支持MVC架构,拥有丰富的插件系统,使得处理CSV这样的任务变得简单。 三、Grails导出CSV的步骤 1. **创建控制器(Controller)** 在Grails应用中,我们通常在控制器中处理业务逻辑...
- **从HQL检索映射、列表和对象**:展示了如何从查询结果中提取不同形式的数据。 **第四章:GORM在Grails中的应用** - **构造GORM对象**:继续深入探讨GORM在实际应用中的使用方法和技术细节。 以上内容涵盖了...
而在Grails的DataFrame插件中,虽然可能没有完全相同的实现,但其核心理念是一样的,即提供一种高效的数据操作接口,便于在Web应用中处理和展示数据。 该插件的主要特点包括: 1. **数据绑定**:DataFrame插件允许...
简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 ...