gpt4 book ai didi

grails - 如何从 GSP 中的常规辅助方法设置变量?

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

我需要输出 html,其中值取决于我拥有的对象类型(我在 DB 表示之间转换)。现在我的逻辑在 g:if block 中。表达式。阅读和调试相对困难。

<g:if test="${o.isKindA}">
<g:set var="x" value="${...}" />
<g:set var="y" value="${...}" />
...
</g:if>
<g:else>
<g:set var="x" value="${...}" />
<g:set var="y" value="${...}" />
...
</g:else>

我对将这些值 X 和 Y 添加为 o 的方法特别不感兴趣。 .我想做的是使用 View 助手设置它们,我理解 == grails 中的“tag lib”:
// Tag Helper
//
class AmazingTagLib {
def valueXFor = { attrs -> o.isKindA? 1 : 2 }
...
}

// The previous GSP, rewritten
//
...
<g:set var="x" value="${ valueXFor(o) }" />

然而,这是失败的。当我尝试使用 x ,它绑定(bind)到一个空的StreamCharBuffer,大概是因为我没有附加任何东西到 out在执行 valueXFor .它应该有我的助手的整数返回值。

在我看来,如何使用这样的功能性辅助方法?

最佳答案

问题在于,默认情况下,标签库用于呈现 out。 .在这种情况下,您希望从您的方法中返回一个对象/值,您需要告诉 TagLib这种方法与标准行为不同。添加以下内容可以解决问题:

class AmazingTagLib {
static returnObjectForTags = ['valueXFor']
def valueXFor = { attrs -> o.isKindA? 1 : 2 }
...
}

关于grails - 如何从 GSP 中的常规辅助方法设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356168/

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