【发布时间】:2019-01-14 21:58:48
【问题描述】:
我想知道在 JSF(或其任何框架,例如 Primefaces)中是否有可能在页面中显示组件或更准确地说是面板的可变顺序。
例如,向用户显示 3 个不同的内容部分(这些是从 1 到 3 的面板)。但是,在设置中,他应该设置这些内容部分的显示顺序(例如,panel3 应该在顶部,panel1 在中间,panel2 在底部)。
我想到的唯一想法是使用组件绑定或某种不可见的排序数据列表,但这些是我宁愿避免的方法,因为它涉及太多变通方法。
【问题讨论】:
-
为什么不为每个角色定义面板顺序(存储在后端),然后根据用户角色显示面板并继续填充它们?
-
问题是我有 10 个面板。这给了我们大量可能的组合......而且角色并没有真正影响任何东西。每个用户(与其他用户具有相同的角色)自己设置订单。
-
在这种情况下,创建一个用户偏好表并让它存储每个用户面板的默认顺序。在 UI 中,为用户提供更改订单的选项,这将更新此表。每次用户加载页面时,此表将用于获取面板及其对各个用户的排序
-
我不确定我是否理解您的建议。我已经在用户设置的首选项中有一个有序列表。此订单通常保存在数据库中。但是,当我编写 .xhtml 页面时,我将为每个部分提供不同的实现(即不同的面板和不同的组件)。此时,我在 .xhtml 中对渲染顺序进行硬编码。用户在其设置中设置的列表将如何影响这些面板的显示顺序?
-
所以,你已经完成了第一部分,第二部分,即在 UI 中显示确切的面板需要注意。您可以在 JSF 中创建所有不同的面板及其组件作为单独的复合组件。定义复合组件后,您可以在主 xhtml 文件中包含条件逻辑,该逻辑将查找用户希望在给定位置显示的给定面板类型,并在此基础上启用/显示适当的复合组件- 其中定义了所需的面板和组件。了解复合组件
标签: java jsf primefaces