代码之家  ›  专栏  ›  技术社区  ›  Robert Munteanu

循环遍历Tapestry中没有“value”属性的集合

  •  0
  • Robert Munteanu  · 技术社区  · 15 年前

    这个 Tapestry loop documentation

    <t:loop source="pageNames" value="pageName">
        <td class="${tabClass}">
            <t:pagelink page="pageName">${pageName}</t:pagelink>
        </td>
    </t:loop>
    

    从组件中提取pageName变量的位置:

    @Property
    private String _pageName;
    

    无法将“pageName”转换为组件参数绑定。类。。。不包含名为“pageName”的属性(在属性表达式“pageName”中)。可用属性:。。。

    如何使用循环标记而不声明循环值的属性?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Henning    15 年前

    我认为你不必详细说明 t:value ,别说了。在某些情况下,您只想使用 t:index ,那很好。

    是的,没有办法在组件类中声明属性。当您不在组件类中对当前迭代值做任何操作时,它可能看起来有点不雅观,这是真的。我倾向于使用getter和setter而不是 @Property

        2
  •  2
  •   Steve Eynon Henning    13 年前

    可以在模板中为临时变量添加var前缀。所以在你的情况下,你会说 value="var:pagename" . 如果pagename是字符串或整数之类的基元,并且您可以使用以下语法在循环中的任何位置访问它的值,则这种方法可以正常工作 ${var:pagename} . 但是,当您尝试访问它的属性时,它会失败,例如 pagename.name .

    看一看 here 获取可用绑定表达式的列表,以查看可以从中提取值的其他位置(如消息目录)。

    @SuppressWarnings("unused")

    干杯。