gpt4 book ai didi

grails - 使用 Curry 定义 Grails 标签

转载 作者:行者123 更新时间:2023-12-02 00:44:18 26 4
gpt4 key购买 nike

我有一个 grails 标签库 TpTagLib,我想在其中定义 4 个仅在一个常量值上不同的新标签,所以我尝试使用 curry。但是有一个异常(exception):groovy.lang.MissingPropertyException: No such property: attr for class: 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),这样它就不会被视为可用标记方法的候选者:

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

标签可以没有参数,或者一个“attr”参数,或者一个“attr”和“body”参数但其他签名无效。

关于grails - 使用 Curry 定义 Grails 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com