У меня есть ArrayList из ArrayList - Заявляю это следующим образом:JSF-ArrayList из ArrayList в JSF
ArrayList<ArrayList<String>> queryResult=new ArrayList<ArrayList<String>>();
Затем добавить новый элемент в массив, как это:
for(int i=1;i<colNumber;i++)
{
queryResult.add(new ArrayList<String>(20));
}
после что я добавить значение элементов массива:
while(r.next())
{
for(int i=0;i<colNumber;i++)
{
queryResult.get(i).add(r.getString(i));
}
}
Но когда я пытаюсь использовать его в DataTable теге Я ничего не вижу :(
<h:dataTable value="#{polaczenieSQL.queryResult}" var="w">
<h:column>
<f:facet name="head">typ</f:facet>
#{w[0]}
</h:column>
Что я делаю неправильно? Как использовать этот массив в JSF?
Ps это мой faces.config:
<managed-property>
<property-name>queryResult</property-name>
<property-class>java.util.ArrayList</property-class>
<list-entries></list-entries>
</managed-property>
Я нашел первую проблему:
r.getString(i)
Я добавил
System.out.print("something")
после цикла, но это Безразлично Не хотите печатать.
Когда я изменяю переменную «i» и типа например: 4 Я вижу «что-то» на моей консоли. Переменная «colNumber» установлена в 5 (но моя таблица sql имеет 7 столбцов, и я использую «select * from mytable», поэтому я не думаю, что это проблема счетчика).
- это код Java в резервной копии? также, почему вам нужно, чтобы пустая управляемая собственность была настроена в вашей 'faces-config'? – elias
@eljunior: 1) да, весь код java от моего menaged-bean 2) это свойство пустое, потому что я добавляю данные к ней после подключения к серверу sql – ognistysztorm
Вы глотаете исключения где-то? 'ResultSet # getString()' будет бросать 'SQLException: invalid index', когда' 0' передается. Проблема заключается, по крайней мере, в том, что вы не заметили код, опубликованный до сих пор (по крайней мере, не техническая проблема, о которой вы говорите, есть серьезные проблемы с дизайном). Я также не уверен, почему этот вопрос получил 2 upvotes, так как он неопровержимо в его нынешней форме и раскрывает плохие практики. – BalusC