2009-09-03 11 views
3

私はgrailsタグライブラリTpTagLibを持っています。その中にある定数値が異なる4つの新しいタグを定義したいので、私はcurryを使ってみました。 しかし、例外があります:groovy.lang.MissingPropertyException:いいえ、そのようなプロパティ:クラスのためのattr:TpTagLibカレーを使ってGrailsタグを定義する

誰がこの例外が発生した理由を任意のアイデアを持っていますか? コードは次のとおりです。

def ifPermsTag = { permissions, attr, body -> 
    def user = attr?.user ?: session.userInstance 
    if(!user) return false 
    if(!securityService.hasPermissions(user,permissions)) return false 
     out << body() 
    return true 
} 


def canAdminRequestmaps = ifPermsTag.curry(Permission.CAN_ADMIN_REQUESTMAPS) 
def canAdminCorporations = ifPermsTag.curry(Permission.CAN_ADMIN_CORPS) 
def canAdminUsers = ifPermsTag.curry(Permission.CAN_ADMIN_USERS)  
def canAdminDevices = ifPermsTag.curry(Permission.CAN_ADMIN_DEVICES)  
+0

投稿できるstacktraceがありますか? – Chii

+0

今、私は気が気になりません。私は同じコードをもう一度試してみました。ここからコピー貼り付けて、うまくいきました。 – Azder

答えて

3

クールなテクニック。あなたは候補者が使用可能なタグの方法であると考えられていないので、ifPermsTagをプライベートにする必要があります。

private ifPermsTag = { permissions, attr, body -> 
... 
} 

タグはパラメータ、または「ATTR」パラメータ、または「ATTR」と「体」のパラメータを持つことはできません他の署名は無効です。

+0

他のシグネチャはタグでは無効なので、実際にはタグとして認識されませんでしたが、プライベートではそのことを確認するのが良い方法です。ありがとう。 – Azder

関連する問題