挂毯循环文档显示了下面的示例
<t:loop source="pageNames" value="pageName">
<td class="${tabClass}">
<t:pagelink page="pageName">${pageName}</t:pagelink>
</td>
</t:loop>其中,从组件中提取pageName变量:
@Property
private String _pageName;我对这样的财产毫无用处。从组件中删除声明会使Tapestry感到悲伤,并引发类似于
无法将“pageName”转换为组件参数绑定。上课..。不包含名为“pageName”的属性(在属性表达式“pageName”中)。可用属性:.
如何在不为循环值声明属性的情况下使用循环标记?
发布于 2010-09-16 15:55:55
我认为您不必指定t:value,只需忽略它。在某些情况下,您只想使用t:index,这很好。
根据评论编辑:
是的,在组件类中声明属性是没有办法的。如果您不对组件类中的当前迭代值做任何操作,这看起来可能有点不雅观,这是真的。在这种情况下,我倾向于使用getter和setter来代替@Property注释,以避免“未使用”编译器警告。
发布于 2010-11-12 10:34:22
您可以在模板中的临时变量前缀上加上var前缀。所以在你的例子中,你只需要说value="var:pagename"。如果pagename是一个原语(例如字符串或整数),并且可以使用以下语法${var:pagename}访问循环中任何位置的值,这就很好了。但是,当您尝试访问它的属性(如pagename.name )时,它会失败。
查看这里,查看可用绑定表达式的列表,以查看可以从中提取值的其他位置(例如消息目录)。
或者,您可以在属性的页面类中始终使用@SuppressWarnings("unused")来抑制编译器警告。
干杯。
https://stackoverflow.com/questions/3726239
复制相似问题