在JSF页面中显示实体列表

时间:2015-09-14 07:29:29

标签: jsf jsf-2

我正在尝试使用JSF显示List<Student>

public List<Student> retrieveStudent()
{
Sdao sdao=new Sdao();
List<Student> stud=new ArrayList();
List sname1=new ArrayList();
List sdept1=new ArrayList();
for(Student show1:sdao.retrieveStudent())
{

    sname1.add(show1.getSname());
    sdept1.add(show1.getSdept());

}
stud.addAll(sname1);
stud.addAll(sdept1);


return stud;

}

JSF页面:

    <h:form>

        <h:outputText value="#{student.retrieveStudent()}"/>
     </h:form> 

输出:

[Alpha,Beta,Science,Electronics]

我想将它打印在列名为Names(Alpha,Beta)和第2列的部门中。我不知道如何将它们分开并打印...任何人都可以帮助我......

1 个答案:

答案 0 :(得分:1)

实际上,这种情况的惯例是在 bean 中创建一个不在Student.java类中的属性。此外,您必须在视图中使用名为getNameOfAttribute()的方法(在本例中为getStudents())。

您在输出中看到的内容:[Alpha,Beta,Science,Electronics]是由toString()方法检索的stud列表的retrieveStudent()表示形式。

您需要做的是将此列表放在DataTable

<h:dataTable value="#{userData.retrieveStudent()}" var="student" >
   <h:column>                   
      <f:facet name="header">Name</f:facet>                 
      #{student.name}
   </h:column>
   <h:column>
      <f:facet name="header">Department</f:facet>
      #{student.department}
   </h:column>
</h:dataTable>

注意:学生必须实施公开方法getName()getDeparment()