Grails 2.3.8函数本身被调用?

时间:2014-10-24 23:41:47

标签: grails

我的控制器中有这个grails功能:

def remediationSearch() {
        def resultList
        if (params.rerender) {
            println "<><><> remediationsearch called with rerender."
            resultList = recordSearchService.individualSearch(session.oldIndRemedParams)
        }
        else {
            params.selectedBatch = selectedBatch
            session.oldIndRemedParams = params
            resultList = recordSearchService.individualSearch(params)
            println "<><><> remediationsearch called fresh."
        }
        render(template: 'indivSearchResults', model: [resultList: resultList, resultCount: resultList?.size()])
        println "<><><> remediationsearch done at " + new Date()
    }

当我调用此方法(在同一个控制器中)与它无关时,它似乎被调用:

def chooseupload = {
        println "<><><> Begin choose/upload at: " + System.nanoTime()
        if (session.user == null) {
            render(contentType: 'text/json') {
                [success: true, url: createLink(controller: 'customer', action: 'logout')]
            }
        }
        else {
            selectedBatch = null
            def batchList = (Batch.findAllWhere(userId: session.user.id.toLong(), [sort: "lastUpdate", order: "desc"]))
            render(template: 'chooseupload', model:  [batchList: batchList, batchCount: batchList.size()])
        }
        println "<><><> End choose/upload at: " + System.nanoTime()
    }

第二种方法完成执行,然后第一种方法因我不理解的原因而被调用。 是(第一个函数)被某些浏览器机制调用,因为它将事物存储在会话中吗?我很欣赏正确方向的任何指示。因为调用'chooseupload'方法,我打印出来了:

<><><> Begin choose/upload at: 446158993759810
<><><> End choose/upload at: 446159022252873
<><><> Begin remediationSearch at: 446159080286132
<><><> Rerender call to entityRemediationSearch.
<><><> End remediationSearch at: 446159135646835

所以发生的事情是chooseupload函数的模板呈现,但它由remediationSearch()函数呈现的模板立即呈现。这就是导致我调查这一切的不良结果。

1 个答案:

答案 0 :(得分:0)

不确定这作为评论或答案是否更有意义,但我不具备发表评论所需的50个声誉,所以这里作为答案: - )

我注意到在你的文本输出中你有一行:

<><><> Rerender call to entityRemediationSearch.

但是,您提供的代码中不包含该内容。您是否有可能使用未正确清除旧版本类文件的IDE? chooseupload()曾在某个时间点拨打remediationSearch()吗?如果是这样,在运行grails clean之后尝试从命令行运行它似乎会很好。