我有一个grails标记库tptaglib,在其中我想定义4个新的标记,它们只在一个常量值上有所不同,所以我尝试使用curry。 但有一个例外: 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”和“body”参数,但是其他签名无效。