Grails分页标记错误

时间:2011-02-09 12:30:34

标签: grails groovy

当我点击分页按钮时出现此错误:
处理GroovyPageView时出错:标签[paginate]在/home/user1/workspace/adm-appserver-manager/grails-app/views/emailNotification/status.gsp:59 <缺少必需属性[total] / p>

我的代码是: 在gsp:

<div class="paginateButtons">  
           <g:paginate total="${emailNotificationInstanceTotal}" />  

</div>
控制器中的

def status = {
    [
        emailNotificationInstanceList:EmailNotification.findAllByStatus(EmailNotification.Status.Sent, params ),
        emailNotificationInstanceTotal:EmailNotification.countByStatus(EmailNotification.Status.Sent)  
    ]
}

我提到了总属性,但我不知道为什么会出现这个错误

4 个答案:

答案 0 :(得分:2)

确保您的控制器在返回或渲染中返回此参数。如果源调用失败,您还应该在控制器或视图中添加默认值。

<g:paginate total="${emailNotificationInstanceTotal?:0}" />

或者

emailNotificationInstanceTotal: EmailNotification.countByStatus(EmailNotification.Status.Sent)?:0

答案 1 :(得分:0)

问题是emailNotificationInstanceTotal为null,因此您需要验证从控制器发送的值,或者何时定义此变量以确保它不为null并且int值为0或更高。

答案 2 :(得分:0)

尝试重新生成控制器。在我的情况下,我曾经更改了域类名,但我没有重新生成导致我出错的控制器

答案 3 :(得分:0)

grailsPaginationTag主要用于处理您在特定网页上呈现的列表的分页。

在Oodles Technologies,我们与Grails Development广泛合作。

对于这个插件,只需在config.groovy文件中添加一行。

编译&#34;:远程分页:0.4.8&#34;

远程分页插件为我们提供了使用ajax进行分页的标签,而无需加载页面。它为我们提供了许多用于所需对象列表的分页标记。

例如:

public class Person{
   String name
   long id
   }

在控制器上

public class PersonController{

   def list{
   [list:Person.list()]
   }

   def filterPersonList{
   render('listTemplate',model:[count:Person.list().size(),list:Person.list()])
   }
   }

现在在你的_listTemplate gsp

操作:分页中使用的链接名称

总计:列表大小

update:包含模板的div / span的id

max:获取最大列表

params:传递你自己的参数

maxsteps:分页显示的步数

这可能有助于摆脱错误。

希望它有所帮助。