таблица jsf повторяется - PullRequest
0 голосов
/ 22 августа 2011

еще одна странная проблема 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 - это мой компонент. Теперь я столкнулся с двумя проблемами 1) когда я первоначально загружаю страницу, появляется только «ТЕСТ» (запись, которая жестко запрограммирована) 2) каждый раз, когда я нажимаю клавишу F5, чтобы перезагрузить страницу, таблица сама расширяется. То есть ровно 32 записи (всегда одинаковые) добавляются в конец таблицы, и я не знаю почему?

Это довольно странно, потому что на той же странице есть похожая таблица, из которой я в основном скопировал всю структуру. Есть предложения?

1 Ответ

0 голосов
/ 22 августа 2011

Вы не предоставили каких-либо значимых данных (ни области действия компонента, ни даже свойства кода outageDataForTable, не говоря уже о коде, который выбирает данные). Но позвольте мне на секунду сыграть экстрасенса: бин имеет сессионную (или видовую) область действия, а вы получаете данные в своем получателе?

...