【问题标题】:Grails, paging doesn't work when using findAllByxx to get index-listGrails,使用 findAllByxx 获取索引列表时分页不起作用
【发布时间】:2017-04-26 10:53:25
【问题描述】:

当我查看 OfferHeader 的 index.gsp 时,我只看到“上一个”按钮,当单击它直到找到顶部时,按钮消失。 问题是我需要使用 findAllBy-list 来获取过滤列表,因此响应看起来像这样:

respond offerHeader, model:[offerHeaderCount: offerHeader.count()]

因为 offerHeader.count() 是不允许的,所以我用 .size() 代替。

控制器索引如下所示:

def index(Integer max) {
    params.max = Math.min(max ?: 10, 100)
    def offerHeader = OfferHeader.findAllByOfferType('o',params)
    def count = offerHeader.size()
    respond offerHeader, model:[offerHeaderCount: offerHeader.size()]
}

修改

嗯,Grails 不喜欢我..

我收到了这个错误:

URI
    /offerHeader/index
Class
    groovy.lang.MissingPropertyException
Message
    null
Caused by
    No such property: createCriteria for class: com.torntrading.portal.OfferHeader

Around line 15 of grails-app\controllers\com\torntrading\portal\OfferHeaderController.groovy

12:
13:    def index(Integer max) {
14:        params.max = Math.min(max ?: 10, 100)
15:        def offerHeader = OfferHeader.createCriteria.list( params ) { eq ( "offerType", "o" )}
16:
17:        def count = offerHeader.size()
18:        respond offerHeader, model:[offerHeaderCount: offerHeader.totalCount

编辑

creteCriteria 应该这样使用:

    def index(Integer max) {
        params.max = Math.min(max ?: 10, 100)
        def offerHeader = OfferHeader.createCriteria().list( params ) { eq ( "offerType", "o" )}

        def count = offerHeader.size()
        respond offerHeader, model:[offerHeaderCount: offerHeader.totalCount]

    }

【问题讨论】:

  • 好吧,我在使用 createCriteria 时遇到了一些错误,请参阅上面的修改。

标签: grails pagination gsp


【解决方案1】:

在这种情况下,条件查询可能会更好:

def offers = OfferHeader.createCriteria().list( params ) {
    eq ( "offerType", "o" )
}

respond offers, model: [offerHeaderCount: offers.totalCount]

【讨论】:

  • 我忘了告诉我我试过这个。对于我来说,我得到很多页面并不奇怪,因为它还计算了被过滤的行。所以我得到的页面比预期的多一页,例如4 而不是 3 所以最后一页是空的。否则,在这种情况下分页效果很好,但正如你所知,我不能那样做。
  • 好的,我发现了问题。我必须在 createCiteria 之后加上 () 查看我的编辑。也许您应该编辑您的答案,以便我可以“接受”它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
相关资源
最近更新 更多