Wicket 显示授权矩阵

Wicket display Authorization Matrix

我正在尝试在检票口中显示授权矩阵。

到目前为止,我可以想出 2 个解决方案,但我找不到其中任何一个的优势。

第一个,我现在更喜欢:DataTable
我正在考虑创建一个具有自定义行和列的数据表,然后覆盖 newCellItem 方法以在每个单元格中放置一个 AjaxCheckBox 并从中读取列到行的信息作为值。

问题:我不需要提供者,据我所知,没有提供者是不可能table的。

第二个想法: 列表视图
使用静态 header 行逐行添加它们会非常容易。

问题: 我会失去 table 拥有的所有优势。

Wicket 是否提供任何 "best practice" 或者我应该继续使用 DataTable? 如果是这样:没有提供商就无法创建 table 吗?

因为我用我的方法获取了所有信息

getAllRoles() AND getAllDependencies();

这将 return 一组。

查看 wicketstuff 项目中的 InMethod 网格组件:http://www.wicket-library.com/inmethod-grid/data-grid/editable-selection 我认为它的方向是正确的。

我认为DataTable应该是一个很好的基础。编写提供程序并不难。您甚至可以使用预煮的 ListDataProvider

'hard' 部分是几乎所有默认的 Wicket 转发器都是基于行的,即它们使用一些预定义的 IColumns 集。只要您不动态更改列,DataTable 应该没问题。

我的最终解决方案是为行创建一个 ListView,为列创建一个。 在我的 ListView 行中,我有一个用于单元格的 ListView,它具有与 "columns".

相同数量的对象

编辑:由于它经历了很多变化,我删除了代码片段。但是,嵌套的 ListView 仍然可以完成这项工作。
如果您牢记 .html 中的结构应该如何,您可以使用多个 ListView 轻松访问它。

通常我们在 Wicket 中继器(表格)和 HTML 之间使用近距离连接(HTML 在 X-Y 维度上(HTML 有 3x4,wicket 有 DataTable,模型中有 3 列和 4 个对象等),但是这不是必需的。

Wicket Repeater 可以在线写入数据,简单的一维 Repeater 从 Java 代码中断到 html 行等(发出额外的标签作为对象或普通字符串)。

可以在一个序列中从 Repeater 发射并且 break/format 通过 CSS。我在我的检票口生活中取得了 1-2 倍的成绩,非常困难,因为我不是优秀的网络开发人员,但有可能

当 Wicket DataTable 的列未连接到现实生活中的 n-属性 行对象时,Wicket DataTable 可能不是优雅的解决方案。此类 DataTable 的提供者必须是谎言,而不是模拟真正的问题领域。