我有一个grails标记库TpTagLib,在它中我想定义4个只有一个常量不同的新标记,所以我尝试使用curry。但是有一个例外: groovy.lang.MissingPropertyException: No这样的属性: 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) 发布于 2009-09-03 13:00:49
很酷的技术。您只需要将ifPermsTag设置为私有,这样它就不会被认为是一个可用的标记方法:
private ifPermsTag = { permissions, attr, body ->
...
}标签不能有参数,也不能有'attr‘参数,或者'attr’和'body‘参数,但是其他签名无效。
https://stackoverflow.com/questions/1372145
复制相似问题