我用的是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中只有list(自动生成)中有分页实现,而自己新增的页面中需自己实现分页,该文档中描述了如何实现分页以及注意点
Grails Grails Grails Grails Grails
简单介绍grails的查询操作,已经类似与hibnatate的查询方式
Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南
NULL 博文链接:https://zeroblue.iteye.com/blog/1158924
第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入门好资料
精通Grails 之用 JSON 和Ajax 实现异步Grails。书中包含了全部代码。免费下载
Grails1.1中文文档
Grails入门指南中文pdf -- 针对grails1.0.4更新,附加idea8 开发grails的流程
grails-2.1.zip.001
Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。
NULL 博文链接:https://niuniufei.iteye.com/blog/2292361
grails+Xfire webservice
grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin....
像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...
Grails专为下一代JavaWeb应用程序而设计的框架,其借助于Groovy动态语言,使Web开发变得简单而方便。Grails尽量为更多现有的Java项目创建一个全面的框架(不仅局限于视图处理),这和当前一些Java框架提供给用户的一...
Grails 中文 参考手册
grails3.2.8 part1
详细讲解grails开发环境配置。 详细讲解grails连接mysql数据库,crud开发