Richfaces 4 的动态列

2023-11-25

我需要动态的列数。 Richfaces 为其提供<rich:columns>在 richfaces 3.3.3-final 中,但对于 Richfaces 4 他们似乎推荐<c:forEach>.

c:forEach

我无法让它正常工作。因为我不能依赖数据表中的 var,所以我不知道如何提供数据<c:forEach>具有正确的列列表。 (每行都有自己的值,但标题相同)

基本上我想要显示的数据是一个包含 x 大小的行的列表,每行都有一个 y 大小的列值列表。但怎样才能有<c:forEach>告诉支持 bean 它位于哪一行,以便我可以输入正确的列?

ui/a4j:重复

我不想重新发明轮子,因为我需要冻结列和许多其他功能。已考虑以这种方式创建表 html 并使用 jQuery 实现其他功能。然而,这将是无望的维护和大量的工作。

我还考虑过从动态创建子项的支持 bean 中构建它,但我根本不喜欢那样。这必须是最后的手段。

使用:Tomcat 7、servlet 3.0、JSF 2.1x - Mojarra、Richfaces 4.x

Update

好的,我终于得到了一些结果。但是我的标题不显示。值显示完美,但标题不显示。通过迭代或其他方式执行它们可能会遇到一些问题?

    <rich:dataTable value="#{controller.rows}"
        var="row">
        <c:forEach items="#{controller.columns}" var="column">
            <rd:column id="name" width="250">
                <f:facet name="header">
                    <h:outputText value="#{row.myArrayList[column].header}" />
                </f:facet>
                <h:inputText value="#{row.myArrayList[column].value}"  disabled="#{row.myArrayList[column].open}"/>
            </rd:column>
        </c:forEach>
    </rich:dataTable>

The <c:forEach>确实是你能得到的最好的。这<ui/a4j:repeat>不会工作,因为它在视图渲染期间运行,而UIData组件真正需要的UIColumn孩子们,不UIRepeat孩子们。

为了得到<c:forEach>要工作,您需要为其提供所有属性名称的列表/映射(如果是映射,可能还需要标题标签)。这是一个具体的启动示例,假设Item有属性id, name and value然后#{bean.itemPropertyNames}返回一个List<String>正是这些属性名称。

<rich:dataTable value="#{bean.items}" var="item">
    <c:forEach items="#{bean.itemPropertyNames}" var="itemPropertyName">
        <rich:column>
            #{item[itemPropertyName]}
        </rich:column> 
    </c:forEach>
</rich:dataTable>

如果您还需要显示列标题,那么最好是有一个Map<String, String>其中键代表属性名称,值代表标头值。

<rich:dataTable value="#{bean.items}" var="item">
    <c:forEach items="#{bean.itemProperties}" var="itemProperty">
        <rich:column>
            <f:facet name="header">#{itemProperty.value}</f:facet>
            #{item[itemProperty.key]}
        </rich:column> 
    </c:forEach>
</rich:dataTable>

无论哪种方式,唯一的缺点是#{bean} of <c:forEach items>在此构造中不能是一个视图范围的构造。除非您关闭部分状态保存,否则它将根据每个请求重新创建。它必须是一个请求范围的请求(或会话或应用程序)。请注意,它不一定需要与中的 Bean 相同<rich:dataTable value>.

也可以看看:

  • 根据哈希图列表动态生成 h:column
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Richfaces 4 的动态列 的相关文章

随机推荐

  • Bootstrap 3.3.5 中无法点击 form-control-feedback 中的链接

    我正在使用链接form control feedback span从 3 1 1 开始执行 javascript 函数 我正在尝试升级到 3 3 5 但是form control feedback改变了 请参阅工作 JsFiddle 3 1
  • 如何让 pandas.read_csv 不执行任何转换?

    例如 tmp test csv 中的值 即01 02 03 旨在代表strings恰好匹配的 d 与整数相反 In 10 print open tmp test csv read A B C 01 02 03 默认情况下 pandas re
  • 有没有办法使文件输入上的本机“浏览”按钮变大跨浏览器?

    如您所知 您可以使用 hacky 方法制作自己的文件输入控件 将文件输入定位在自定义按钮上并使用opacity 0在文件输入本身上 下图显示了预期的设计 其中文件输入绝对位于浏览按钮上方 正如您所看到的 人造浏览按钮比浏览器 Firefox
  • 如何使用 JQuery 格式化货币[重复]

    这个问题在这里已经有答案了 我正在尝试使用下面的代码来格式化货币 currency keyup function e var val this val val val replace 0 9 g if val length gt 2 val
  • 如何在 Firebase 中保存位置信息

    我正在尝试将位置 纬度和经度 保存为 Firebase 中的键 字段之一 在他们的例子中SF车辆 它们确实展示了如何在存储信息后进行查询 但我的问题是如何首先保存 在他们的博客文章中 GeoFire 走向移动 他们展示了数据的样子 但我如何
  • 本地计算机上的MySQL57服务启动然后停止

    当我尝试启动 SQL Server 时 会弹出一条消息 指出它已启动 但随后停止了 这发生在我的服务器重新启动后 有谁知道我该如何解决这个问题 确保数据目录为用户 网络服务 和管理员设置了完全权限 并且如果目录中有空格 则在目录名称周围加上
  • Twitter 关注者数量

    获取纯文本形式的关注者计数的唯一方法是使用 cURL 吗 或者 Twitter API 是否提供任何此类选项 https api twitter com 1 users lookup json screen name tvdw 我的个人资料
  • 无法监听JavaFX中的KeyEvent

    我希望我的 JavaFX 程序能够响应键盘事件 我尝试将侦听器添加到 rootPane 到最上面Pane 但它不响应事件 这是我的代码 AnchorPane root new AnchorPane root setOnKeyPressed
  • C# 6 中(自动)属性初始化语法之间的差异

    C 6 中用于初始化属性的以下表达式有什么区别 1 从构造函数初始化自动属性 public class Context1 public Context1 this Items new List
  • 通过套接字传输文件,最终大小较少字节

    我正在尝试通过 C 中的套接字接收一些文件 但是服务器向我发送了 1000000 字节文件的 64 字节数据包 并且我在目标文件上获得了大约 999902 字节 while n read sd buffer in BUFSIZE BUFSI
  • 如何在非唯一列中按日期对 pandas DataFrame 条目进行分组

    一只熊猫DataFrame包含名为 date 包含非唯一的datetime价值观 我可以使用以下方法对该框架中的线条进行分组 data groupby data date 然而 这将数据分割为datetime价值观 我想按 日期 列中存储的
  • O_DIRECT 的真正含义是什么?

    如果我打开一个文件O DIRECT标志 这是否意味着每当对该文件的写入 阻塞模式 返回时 数据都在磁盘上 这个答案适用于 Linux 其他操作系统可能有不同的警告 语义 我们先从子问题开始 如果我打开带有 O DIRECT 标志的文件 是否
  • python如何解释带有前导零的数字

    我是 python 新手 我正在使用 python 2 7 当我在 python shell 上输入以下内容时 print 01 print 010 print 0100 print 01000 它给出了这个结果 1 8 64 512 我试
  • Windows Azure 中角色的静态 IP 地址?

    有谁知道是否可以在 Windows Azure 上获取 Web 或辅助角色的静态 IP 地址 可能仅在私人测试版中 几年后 Azure 现在允许您为虚拟机和云服务 Web 和辅助角色 保留 IP 地址 然而 目前只能通过 PowerShel
  • 将对象传递给 Switch Case Javascript

    我想要一个 switch case 语句来接受 Javascript 中的对象 该函数看起来像这样 const validate values gt values is an object can be accessed like so v
  • 优化 Postgres 删除孤立记录

    取下面两张表 Table public contacts Column Type Modifiers Storage Stats target Description id integer
  • 为什么要使用“errno”?

    我是以色列理工学院计算机科学专业的学生 我刚刚了解到errno变量和 C 风格函数调用 这让我想知道 如果 c 风格的系统调用使用寄存器来返回值 为什么有人应该使用errno at all 使用的主要原因errno是提供有关错误情况的更多信
  • 用于检测 Internet Explorer 11 的正则表达式

    我正在用这个preg match string preg match Trident 7 0 rv 11 0 SERVER HTTP USER AGENT 检测 IE11 以便我可以为其启用平板电脑模式 但是它返回 未知分隔符 7 我怎样才
  • (Phonegap + iOS)为什么当我在设备或模拟器中获取文件系统的完整路径时,我只得到“/”?

    当设备准备就绪时 我运行这个简单的代码 window requestFileSystem LocalFileSystem PERSISTENT 0 function fs var imagesRootPath fs root fullPat
  • Richfaces 4 的动态列

    我需要动态的列数 Richfaces 为其提供