【问题标题】:h:dataTable nested in ui:repeat, updating of inputText values not workingh:dataTable 嵌套在 ui:repeat 中,inputText 值的更新不起作用
【发布时间】:2011-05-04 20:29:57
【问题描述】:

我在同一页面上的几个 h:dataTables 中呈现包含自定义对象 (POJO) 的 ArrayList (menu.specifications)。每个 h:dataTable 都包含不同范围的 ArrayList 元素。一列包含一个 h:inputText 标记。

用户输入提交后,只更新最后一个dataTable的inputText标签。其他 保持不变。

以下是相关代码:

<h:form>
    <ui:repeat value="#{menu.groupTitles}" var="element" varStatus="loop">
        <h:dataTable rendered="#{menu.points[loop.index].y>0}" value="#{menu.specifications}" 
            first="#{menu.points[loop.index].x}" rows="#{menu.points[loop.index].y}" var="rowVar" border="1">                  
            <h:inputText  value="#{rowVar.pvalue}"  id="pvalue"/>

我也试过了:

<h:inputText value="#{menu.specifications[rowVar.index].pvalue}" id="pvalue"/>

参考说明:

  • menu.points[loop.index].x = 要在数据表中显示的 ArrayList 的第一个元素
  • menu.points[loop.index].y = 要在数据表中显示的元素数
  • menu.groupTitles = 不同数据表的标题

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    这似乎是由ui:repeat 标记生成时所有具有相同 ID 的数据表的问题。另请参阅 Mojarra JIRA 上的 issue。但是,我还没有解决方案。它似乎从 JSF 1.2 开始就存在,因为从 JBoss 4.2.2 切换到 4.3.3 时首先出现问题,其中还包括 JSF 1.2 版本升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2015-08-07
      • 2016-06-09
      • 1970-01-01
      • 2010-12-28
      相关资源
      最近更新 更多