-6ren">
gpt4 book ai didi

grails - Grails GSP-无法使用参数调用主体

转载 作者:行者123 更新时间:2023-12-02 15:34:54 25 4
gpt4 key购买 nike

我已经定义了一个标签库,像这样:

class FooTagLib {
static namespace = "foo"

def bar = { attrs, body ->
out << render(template: "/taglib/foo/bar", model: [body: body])
}
}

主体闭包带有两个参数baz和qux,为什么我不能在我的/taglib/foo/_bar.gsp中执行此操作:
${body(baz: 'Hello', qux: 'world!')}



这就是我在gsp View 中使用此标记的方式:
<foo:bar>
${baz} ${qux}
</foo:bar

它打印主体的内容,但是参数都是 null:
null null

这是一个错误还是我做错了什么?

最佳答案

在taglib内,您永远不会指定任何参数,因为taglib不知道映射键的名称,所以它不会自动完成。您必须在模型中指定映射键和值。

class FooTagLib {
static namespace = "foo"

def bar = { attrs, body ->
def s = body()
def tokens = s.tokenize()
out << render(template: "/taglib/foo/bar", model: [body: [baz:tokens[0], qux:tokens[1]] ])
}
}

也许 body 识别并不是您真正应该做的,而仅仅是为了弄清楚。

使用 attrs会比使用params构建主体闭包更容易。

关于grails - Grails GSP-无法使用参数调用主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13002771/

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