jsf表重复了一遍

时间:2011-08-22 09:58:41

标签: java jsf richfaces

另一个奇怪的jsf问题。我的代码看起来像这样: Java Bean:

class Bean {
  private ArrayList<OutageTableHeader> outageTableHeaderData;

  public ArrayList<OutageTableHeader> getOutageTableHeaderData() {
    return outageTableHeaderData;
  }

  public void setOutageTableHeaderData(ArrayList<OutageTableHeader> value) {
    this.outageTableHeaderData = value;
  }

  public List<OutageRowData> getOutageDataForTable() {

    createOutageTableHeader(); // method which populates outageTableHeaderData with data

    ...

    return(); // returns a list of OutageRowData objects, each for every row
  }
}

我的xhtml文件:

... 
<h:form>
  <rich:dataTable id="outageOverviewTable"
    value="#{mapOverviewManager.getOutageDataForTable()}" var="outageRow"
    rendered="#{mapOverviewManager.outageDataForTable.size() > 0}"
    headerClass="overviewHeader" cellpadding="0" cellspacing="0"
    rowClasses="areaRowOdd, areaRowEven" style="width: auto">

    <f:facet name="header">
      <rich:columnGroup style="background: #ffffff">

        <rich:column>
          <h:outputText>TEST</h:outputText>
        </rich:column>

        <c:forEach items="#{mapOverviewManager.outageTableHeaderData}"
          var="outHeader">
          <rich:column colspan="#{outHeader.colSpan}">
            <h:outputText value="#{outHeader.displayName}" />
          </rich:column>
        </c:forEach>

      </rich:columnGroup>
    </f:facet>

  </rich:dataTable>
</h:form>

mapOverviewManager是我的bean。现在我遇到了两个问题 1)当我初始加载页面时,只出现“TEST”(硬编码的条目) 2)每次按F5重新加载页面时,表格都会自动展开。也就是说,正好将32个条目(总是相同的)附加到表的末尾,我不知道为什么?

这很奇怪,因为在同一个页面上是一个类似的表,我从中基本上复制了整个结构。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您没有提供任何有意义的数据(不是bean的范围,甚至不是代码outageDataForTable属性,更不用说提取数据的代码)。但是让我在一秒钟内玩一个通灵者:bean是会话(或视图)作用域,你在getter中获取数据?