JSF не печатает номера - PullRequest
       2

JSF не печатает номера

0 голосов
/ 08 марта 2012

я пытаюсь напечатать этот список чисел ниже значений на моей странице, но эти значения не печатаются на моей странице jsf, остальные теги на странице печатаются отлично, я посмотрел в своем классе контроллера, есть ли в списке элементыне имеет значения как [1,2,3,4], и я посмотрел в источнике представления, но эти значения не доступны в источнике представления.Может кто-нибудь, пожалуйста, дайте мне знать, где я делаю неправильно.Спасибо !!!

<h:dataTable value="#{pagination.pagesList}" var="page">
  <h:outputText value="#{page}"></h:outputText>
</h:dataTable>

Код поддержки:

for (int i = 0; i < plth; i++) {
            pageInt[i] = ++pageno1;
            pagesList = Arrays.asList(pageInt);

        }

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Помимо пропущенного <h:column>, как справедливо упомянул Мэтт, у вас есть еще одна проблема:

pagesList = Arrays.asList(pageInt)

Это создает List<int[]>, а не List<Integer>.Если вы правильно использовали Generics (так что если вы действительно использовали List<Integer> вместо List или List<?>), то вы уже должны быть пойманы этой ошибкойошибка компиляции.

В вашем текущем списке есть только один элемент - int[].Когда вы печатаете его как элемент внутри таблицы данных JSF, он будет выглядеть примерно так:

[I@1234567

Где часть после @ является хеш-кодом экземпляра объекта int[].

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

Но, к слову, чтобы преобразовать int[] в List<Integer>, вам нужно повторить цикл после того, как вы заполните pageInt:

for (int i = 0; i < plth; i++) {
    pageInt[i] = ++pageno1;
}

pagesList = new ArrayList<Integer>();

for (int page : pageInt) {
    pagesList.add(page);
}

Или, может быть, лучше вообще избавиться от pageInt и использовать pagesList полностью:

pagesList = new ArrayList<Integer>();

for (int i = 0; i < plth; i++) {
    pagesList.add(++pageno1);
}
0 голосов
/ 08 марта 2012

Добавьте столбец к вашей таблице:

<h:dataTable value="#{pagination.pagesList}" var="page">
  <h:column>
    <h:outputText value="#{page}"></h:outputText>
  </h:column>
</h:dataTable>

Обновление:

Итак, у вас есть List<Integer>? Это может быть проблемой, потому что элементы списка адресуются целочисленным индексом. Насколько я знаю, элементы списка для h:dataTable должны быть бобами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...