我有一个Grails标记库TpTagLib并在它我想定义不同之处仅在一个恒定值4个新标记,所以我试图使用咖喱。 但有一个例外: groovy.lang.MissingPropertyException:没有这样的属性:ATTR类:TpTagLib

有没有人有这个原因发生异常的任何想法? 下面是代码:

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)    
有帮助吗?

解决方案

冷技术。你只需要做出ifPermsTag私人,所以它不被认为是一个可用标签方法的候选人:

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

标记可具有任何参数,或“ATTR”参数,或“ATTR”和“体”的参数,但其他签名是无效的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top