0

構成プロパティを参照するドメイン クラスにカスタム バリデータがあります。

accountExpirationDate (
    nullable:true,
    validator: { val, obj ->
        if (val > new Date() + CH.config.EXPIRATION_WINDOW_DAYS) return ['date_too_late']
    })

ここで、CH は org.codehaus.groovy.grails.commons.ConfigurationHolder です。

ConfigurationHolder は推奨されていないため、削除する必要があります。その代わりに grailsApplication を使用してみましたが、このインスタンスでは機能しません。別の方法はありますか?

4

2 に答える 2

3

の依存性注入を追加すると、インスタンスgrailsApplicationからアクセスできるようになりますobj

class MyDomainClass {

   def grailsApplication

   Date accountExpirationDate

   static constraints = {
      accountExpirationDate(nullable:true, validator: { val, obj ->
         def config = obj.grailsApplication.config
         if (val > new Date() + config.EXPIRATION_WINDOW_DAYS) return ['date_too_late']
      })
   }
}
于 2012-04-06T21:00:49.813 に答える
0

ドメインに新しい getDomainClass メソッドがあります。これを使用して grailsApplication にアクセスできます。

validator: { val, obj ->
    if (val > new Date() + this.getDomainClass().grailsApplication.config.EXPIRATION_WINDOW_DAYS) return ['date_too_late']
})

このトピックに関するより良い報道があります: http://burtbeckwith.com/blog/?p=993

于 2012-04-06T21:04:21.660 に答える