0

私はGrailsの初心者であり、Grailsの古いバージョン(1.3.6 / 8)を使用しています。割り当てたものを保持していない変数を持つオブジェクトがあります。

class NiftyController {

    try
    {
        SomeGrid someGrid = new SomeGrid()
        def selectedDate = params.specifiedDate
        ...
        someGrid.selectedDate = selectedDate
        someGrid.longDate = Calendar.getInstance().getTimeInMillis()
        println someGrid.selectedDate // prints, say, 08/06/2012
        println someGrid.longDate // prints, say, 1302558890256
        ....
        doSomeWork(someGrid)
    }


    def doSomeWork = { SomeGrid someGrid ->
        println someGrid.selectedDate // prints '' (empty)
        println someGrid.longDate // prints 8 - the number for the current month.
    }
}

私は完全に頭を悩ませています-私はJavaを使用していますが、割り当てられた変数データのこのタイプの損失は新しく、まったく意味がありません。誰かがここで何が起こっているのか理解できますか?グレイルズ特有の視界の問題だと思いますが、釘付けにはなりません。

どんな助けでも大歓迎です!

4

1 に答える 1

0

doSomeWorkそれ自体がコントローラーアクションである必要がない場合は、クロージャーではなく通常のメソッドにします。

private doSomeWork(SomeGrid someGrid) {
  //...
}

これをクロージャーとして使用すると、Grails はSomeGridパラメーターをコマンド オブジェクトとして扱い、params.

于 2012-08-07T19:34:29.623 に答える