Фасет заголовка h:dataTable не отображает значение из строки

Я пытаюсь понять, почему фасет второго столбца с #{entry.value} ничего не отображает, только пустой заголовок?

<h:dataTable value="#{bean.entries}" var="entry">
<h:column>
    <f:facet name="header">
        <h:outputText value="UserId" />
    </f:facet>
    <h:outputText value="#{entry.key}" />
</h:column>
<h:column>
    <f:facet name="header">
        <h:outputText value="#{entry.value}" />
    </f:facet>
    <h:outputText value="#{entry.value}" />
</h:column>

I've understand that maybe I'm doing it wrong, because myfaces cannot know from which row it should take the value #{entry.value} to put in the header column.

В моем случае каждая строка имеет одинаковое значение #{entry.value}, поэтому любые строки могут быть в порядке.

Итак, как я могу получить таблицу данных, которая извлекает список объектов (соответствующих строк) и одно значение для помещения в объект заголовка? (или список значений для всех столбцов заголовка)?

Любые идеи?

Спасибо!


person user2010955    schedule 27.08.2015    source источник
comment
Какую именно строку он должен отображать в заголовке?   -  person BalusC    schedule 27.08.2015
comment
Вы видите, что таблица состоит из двух столбцов. Второй столбец имеет заголовок в качестве первой строки и значение во второй строке. Они должны отображать одну и ту же информацию, но я получаю пустой заголовок! Во второй строке правильно отображается значение {entry.value}   -  person user2010955    schedule 27.08.2015
comment
Вы ссылаетесь на значение на основе строки в заголовке столбца. Для какой именно строки вы хотите показать значение? Представьте, что в таблице 10 строк (т. е. #{bean.entries} возвращает 10 элементов). Какой именно вы хотите отобразить в заголовке? (Надеюсь, вы уже начали понимать, что у самого <h:dataTable> есть именно эта проблема, и поэтому заголовок пуст)   -  person BalusC    schedule 27.08.2015
comment
О, я вижу ... Хммм, это может быть ошибка   -  person user2010955    schedule 27.08.2015
comment
Допустим, beans.entries извлекает список из 10 элементов, и я хочу скопировать в заголовок третий элемент   -  person user2010955    schedule 27.08.2015
comment
Затем вместо этого ссылайтесь именно на этот элемент через #{bean}. Это указывает только на сломанную/хрупкую модель. А если всего 2 элемента? Вы можете сначала вернуться к доске.   -  person BalusC    schedule 27.08.2015
comment
Хм, а что, если я хочу скопировать только элемент возвращаемого списка в один заголовок столбца, я имею в виду, что я не хочу, чтобы вся строка копировалась в заголовок, но только в столбце заголовка я хочу n-й элемент списка, указан атрибут... я все еще запутался   -  person user2010955    schedule 27.08.2015
comment
Эта часть проста, но вы не совсем понимаете, какую именно строку вы хотите отобразить в заголовке столбца и почему именно. Обычно таблица так не работает. Заголовок столбца должен представлять описание столбца, например. Имя, адрес электронной почты, название, цена и т. д. В вашем конкретном случае ключ и значение будут кандидатами на заголовки для этих двух столбцов. Обратите внимание, что это не проблема JSF, а просто общая проблема модели/дизайна в отношении табличных данных. У вас будет точно такая же проблема, если вы попробуете то же самое в любой другой структуре представления.   -  person BalusC    schedule 29.08.2015
comment
Спасибо за ваш ответ. Чтобы дать вам пример, представьте, что таблица показывает числа, количество чего-либо, поэтому иногда таблица извлекает все строки, содержащие очень маленькие числа, иногда она извлекает очень большие числа, поэтому я хотел бы изменить текст столбца заголовка на основе возвращенные данные. Поэтому я подумал о том, чтобы иметь своего рода скрытый дополнительный столбец с единицей измерения и скопировать это значение в столбец заголовка, поэтому каждая строка содержит одно и то же значение, я мог бы скопировать это из любой другой строки... Это так? Чисто?   -  person user2010955    schedule 30.08.2015
comment
Это то, что @BalusC заявляет в Тогда ссылайтесь именно на этот элемент через #{bean}, сделайте #{bean.entries[0].uom в заголовке. Работает отлично   -  person Kukeltje    schedule 12.03.2019