用咖喱来定义Grails的标签
题
我有一个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”和“体”的参数,但其他签名是无效的。
不隶属于 StackOverflow