我正在尝试使用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列的部门中。我不知道如何将它们分开并打印...任何人都可以帮助我......
答案 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()
。