2013-03-08 50 views
0

我得到了我的學生類的列表,學生有他自己的課程列表。由Hibernate API的標準我已經通過名稱選定的學生,參加課程,所以我有結構是這樣的:Primefaces數據表內連接

Student ID=1, Courses.size=2 
Student ID=1, Courses.size=2 
Student ID=2, Courses.size=1 
Student ID=3, Courses.size=2 
Student ID=3, Courses.size=2 

學生重複很多他的課程的規模。這是我想要做的。但是我在將它顯示在我的Primefaces數據表中時遇到了問題。

<p:dataTable var="student" rowIndexVar="row" selectionMode="single" paginator="true" value="#{studentsMB.students}" lazy="true" rows="30"> 

<p:column id="tematpl" headerText="Temat pracy dyplomowej"> 
    <h:outputText value="#{student.name}" /> 
</p:column> 

<p:column headerText="Test">         
    <h:outputText value="#{student.courses[???].name} " /> 
</p:column> 

</p:dataTable> 

如何在「???」中包含變量?所以我可以顯示每個課程的名稱?使用primefaces subtablerowexpansion會 更好

對於行擴張

+1

是不是應該更好地得到課程的列表,加入與學生而不是? – Fortega 2013-03-08 09:13:35

+0

不幸的是,它必須是學生的列表視圖... – Cichy 2013-03-08 09:26:14

回答

1

從UI的角度來看,一個簡單的結構將是

<p:dataTable var="student" rowIndexVar="row" selectionMode="single" paginator="true" value="#{studentsMB.students}" lazy="true" rows="30"> 

    <p:column style="width:2%"> 
     <p:rowToggler /> 
    </p:column> 

    <p:column id="tematpl" headerText="Temat pracy dyplomowej"> 
     <h:outputText value="#{student.name}" /> 
    </p:column> 

    <p:rowExpansion> 
     <p:datatable value="#{student.courses}" var="course" 
      <p:column headerText="Course name"> 
       <h:outputText value="#{course.name}" /> 
      </p:column> 
     </p:datatable>   
    </p:rowExpansion> 
</p:dataTable>