一、问题背景
本文主要介绍如何讲数组里的数据封装在map里,然后利用dataTable显示在页面上。本文所用的工程例子是JSF框架的。
主要思路是将对象(car)的信息封装在一个一维数组中,由于有多个car对象(放在list中),所以讲该list里的对象
封装在二维数组中,并利用map的键值(car的id)来控制一维数组(每天个car的信息)在前台(dataTable)中显示出来。
二、具体代码
1.back bean 代码
public class CarReportBean {
private List<Car> cars=new ArrayList<Car>();
private String[][] carsInfo;
private Map<Integer, String[]> carReportsMap=new HashMap<Integer, String[]>();
public void getCarReportsMap(){
Transaction tx=HibernateUtil.getSessionFactory().getCurrentSession()
.beginTransaction();
cars.clear();
carReportsMap.clear();
CarHibernateDAO dao=new CarHibernateDAO();
cars=dao.dao.findAll();
carsInfo=new int[cars.size()][4];
//封装每个car的信息到数组中
for(int i=0;i<cars.size();i++){
carsInfo[i][0]=cars.get(i).getCarId();
carsInfo[i][1]=cars.get(i).getCarName();
carsInfo[i][2]=cars.get(i).getCarType();
carsInfo[i][3]=cars.get(i).getCarPrice();
}
Car car;
//建立键值对的关系在map中
for(int i=0;i<cars.size();i++){
car=cars.get(i);
carReportsMap.put(car.getId(), carsInfo[i]);
}
HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();
}
}
2.页面代码:
<h:panelGrid columns="4" styleClass=""rowClasses="" columnClasses="">
<h:outputText value="Car Id"/>
<h:outputText value="Car Name"/>
<h:outputText value="Car Type"/>
<h:outputText value="Car Price"/>
</h:panelGrid>
<t:dataTable id="statusTable1" var="car" value="#{CarReportBean.cars}" styleClass=""
cellpadding="0" cellspacing="0" border="0" style=" columnClasses="" rowClasses="" >
<t:column>
<h:outputText value="#{CarReportBean.carReportsMap[car.id][0]}"/>
</t:column>
<t:column>
<h:outputText value="#{CarReportBean.carReportsMap[car.id][1]}"/>
</t:column>
<t:column>
<h:outputText value="#{CarReportBean.carReportsMap[car.id][2]}"/>
</t:column>
<t:column>
<h:outputText value="#{CarReportBean.carReportsMap[car.id][3]}"/>
</t:column>
</t:dataTable>
3.结果
页面上会出现一个表格,每行会显示汽车的id,name,型号和价格
三、备注
值得注意的是,如果panelGrid与dataTable用同样的CSS来规定列和行的style,那么两个表格的style可以完全相同,
每个单元格里面的内容也可以彼此对齐。
另外,本文只是用了一个简单的例子说明如何利用map使二维数组显示出来,当然就例子本身而言,有更简单的方法。
本文之所以用麻烦的办法,目的在于为了显示Map的特点与使用技巧,希望读者可以从中找到自己
可以利用的逻辑,来完成自己的需要。
Map、数组以及dataTable的结合使用
最新推荐文章于 2022-12-13 17:16:32 发布