2013-10-02 4 views
0

Привет У меня есть переменная, какКак привязать Список Список в JSF DataTable

List<List<MyObject>> x = new ArrayList<List<MyObject>>(); 

Я хотел эту привязку к DataTable в JSF, которая содержит выберите

<datatable> 
    <column> 
     <Select/> 
    </column> 
</datatable> 

Возможно ли это в JSF

Код: View.xhtml

<h:dataTable id="i1" value="#{bean.listoflist}" var="list1"> 
    <h:column> 
    <h:selectOneListbox value="#{bean.somestring}" > 
     <f:selectItems value="#{list1.?}" var="any" itemValue="#{any.??}/>" 
    </h:selectOneListbox> 
    </h:column>      
</h:dataTable>` 

Bean.java (имя = «боб»)

public class Bean implements Serializable 
{ 
    List<List<MyObject>> listoflist = new ArrayList<List<MyObject>>() 

//--------------Getters and Setter 
} 

MyObject.java

public class MyObject 
{ 
    private String s1; 
    private String s2; 
    //---------------getter and setter 
} 

ответ

2

Если я понял вашу проблему правильно, вы хотите сделать DataTable отборных элементов, варианты приходят образуют вложенный список вашей модели. Если да, то вот решение:

  • подготовить массив из выбранных элементов на размер внешнего списка;
  • есть конвертер для вашего объекта модели;
  • соответствующим образом заполнить компоненты пользовательского интерфейса.

Ниже вы можете найти рабочий пример:

<h:dataTable value="#{bean.listOfLists}" var="list" binding="#{table}" > 
    <h:column> 
     <h:selectOneListbox value="#{bean.selection[table.rowIndex]}" converter="myObjectConverter" > 
      <f:selectItems value="#{list}" var="obj" itemValue="#{obj}" itemLabel="#{obj.s1}" /> 
     </h:selectOneListbox> 
    </h:column>      
</h:dataTable> 

с

MyObject[] selection = new MyObject[listOfLists.size()]; 
Смежные вопросы