我一直在使用ui:repeat来生成表格。通过使用varStatus
,可以很容易地为行编号。当调用支持列表导航的后端bean时,例如向上或向下移动项目,我依赖于从varStatus中获取的行ID。
现在我想创建一个组合组件,该组件构建一个可定制的表格,并具有标记行、将行上/下移等所需的所有功能。为此,ui:repeat无法使用,因为我找不到处理不同列数的方式;我需要在一个地方指定标题,在另一个地方指定正文(而且我还没有掌握创建自定义组件的知识点)。因此,我换成了datatable,因为使用它意味着在与主体内容相同的位置指定标头作为facets。
这样做效果很好,直到我注意到由于某种原因没有varStatus
。我已经投入了很多精力来处理列表显示,而不需要任何datamodel
,我不想开始使用它。有没有办法可以获取当前行号,就像在表格中显示的那样,而不使用datamodel
?
此外,我正在使用viewScope,如果我理解正确,这意味着不能将dataTable绑定到bean上。
var
属性的值不需要 EL 表达式,但binding
属性的值需要。我曾经有这样的偏见,认为 EL 表达式中的任何命名值都应该已经被声明(由我自己),而且我觉得给变量(例如table
、rowItem
)命名不应该在 EL 表达式中发生。 - Hirofumi Okino<h:column>
标签必须放在<h:dataTable>
标签内部。您可以使用任何不存在的变量名,例如#{foo}
。还可以参见 https://dev59.com/PGUp5IYBdhLWcg3w-LQJ - BalusCtable
,而无需使用binding
。 - Marco Sulla