gpt4 book ai didi

java - 将变量作为参数传递给方法

转载 作者:行者123 更新时间:2023-11-30 08:15:55 25 4
gpt4 key购买 nike

我的 tml 文件中有以下代码:

<t:loop source="navItem.subPages" value="var:subPage">
<t:any element="li" class="prop:classForPageName">
<t:pagelink page="var:subPage">${getMenuPageName(var:subPage)}</t:pagelink>
</t:any>
</t:loop>

我在将变量 var:subPage 传递给方法 ${getMenuPageName(var:subPage)} 时遇到问题,因为这会引发异常:

Could not convert 'getMenuPageName(var:subPage)' into a component parameter binding: Error parsing property expression 'getMenuPageName(var:subPage)': line 1:15 no viable alternative at input '('.

最佳答案

您不能使用binding prefixes (如 var:)在属性表达式内。

您只能在表达式前面使用前缀,让 Tapestry 知道它应该如何解释其余部分(冒号后面的部分)。

请参阅属性表达式的 NBF 语法以查看其中允许的内容:

Tapestry Documentation > User Guide > Property Expressions .

创建属性表达式只是为了支持非常基本的构造。如果您需要更复杂的表达式,您应该在 java 类中创建相应的方法,并使用 prop: 绑定(bind)前缀引用它们。

Template expansions您已经提到 (${...}) 与参数绑定(bind)的工作方式相同:

Under the covers, expansions are the same as parameter bindings. The default binding prefix for expansions is "prop:" (that is, the name of a property or a property expression), but other binding prefixes are useful, especially "message:" (to access a localized message from the component's message catalog).

关于java - 将变量作为参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679416/

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