Динамические столбцы Primefaces не отображаются

По какой-то причине в моей таблице не отображаются динамические столбцы. Я прочитал аналогичный пост (Статические и динамические столбцы Primefaces в таблице данных ) именно то, что я пытаюсь сделать. Думаю, я хорошо понял. Но это не работает для меня. Возможно, я что-то упускаю.

Это мой объект данных:

    public class DataSeries implements Serializable {
      private String resultType; // Either READ, WRITE or MIX
      private Map<String,String> points; 
      private List<String> columns;  // is fixed {"col1","col2","col3","col4"...}

      public DataSeries(String resultType, List<String> columns, Map<String,String> points) {
          this.resultType = resultType;
          this.points = points;
          this.columns = columns;
      }
      ... Getter and Setter for the aboves
  }

Поддержка Bean TestResultView

        resultData = new ArrayList<DataSeries>();
        ...
        ... Loop to populate 
        ....   List<String> uniqueLabels = ... (it represent columns and it's fixed length)
            Map<String,String> tuples = new HashMap();
            for (DataPoint point : points) {
                tuples.put(point.name, point.value);
            }

            DataSeries series = new DataSeries(type,uniqueLabels,tuples);              
            resultData.add(series);

Вот мой xhtml

                    <p:dataTable id="datalist" value="#{TestResultView.resultData}" var="item" widgetVar="resultsTable">
                        <p:column headerText="Type">
                            <h:outputText value="#{item.resultType}" />
                        </p:column>
                        <p:columns value="#{item.columns}" var="column" headerText="#{column}" >
                            <h:outputText value="#{item.points.get(column)}" />
                        </p:columns>                            
                    </p:dataTable>

Ожидается вывод:

    type |  col 1   | col 2    | ... 
    ----------------------------------------------------------------------
    READ |  xxx1    |  yyy1    | ... 
    WRITE|  xxx2    |  yyy2    | ... 
    MIX  |  xxx3    |  yyy3    | ... 

Но все, что я вижу, это:

    type
    ----------------------------------------------------------------------
    READ
    WRITE
    MIX

person DanD    schedule 22.02.2015    source источник
comment
возможный дубликат статических и динамических столбцов Primefaces в таблице данных   -  person Kukeltje    schedule 23.02.2015


Ответы (2)


Вы совершаете точно такую ​​же ошибку, как и в посте, на который ссылаетесь. Посмотри там первый ответ

person Kukeltje    schedule 23.02.2015

У меня была эта проблема раньше. Вероятно, это сработает:

 <p:columns value="#{item.columns.toArray()}" var="column" headerText="#{column}">
    <h:outputText value="#{item.points.get(column)}" />
</p:columns> 
person Pablo Fawkes    schedule 05.04.2017