[英]Freemarker : list of objects which contains other object
我想用FreeMarker語言打印包含其他對象的對象列表
例如,我有一個Java對象:
public class Adress
{
private String _street;
private String _city;
}
和另一個Java對象:
public class House
{
private int _nb_room;
private Adress _adressHouse;
}
在創建包含我的bdd數據的列表之后:
public Collection<House> getHousesList()
{
Collection<House> housesList = new ArrayList<House>();
DAOUtil daoUtil = new DAOUtil( "SELECT nb_room, street, city FROM house", bdd);
while(daoUtil.next())
{
House tmpHouse = new House();
tmpHouse.setNbRoom(daoUtil.getString(1));
Adress tmpAdress = new Adress();
tmpAdress.setStreet(daoUtil.getString(2));
tmpAdress.setStreet(daoUtil.getString(3));
tmpHouse.setAdress(tmpAdress);
housesList.add(tmpAdress);
}
daoUtil.free();
}
在另一個文件中,我將列表發送到html:
model.put('houseList',model.put('housesList',getHousesList());
在我的html中,我有:
<table>
<#list houseList houseTmp>
<tr>
<td>${houseTmp.nb_room!''}</td>
<td>${houseTmp.adressHouse.street!''}</td>
<td>${houseTmp.adressHouse.city!''}</td>
</tr>
</#list>
</table>
當我在瀏覽器上查看HTML時,只有打印房間數而不是地址,但是當我在將列表發送到HTML之前做一個斷點時,里面就有地址。
那么我該如何訪問房屋地址?
您有一個private Adress _adressHouse;
在您的House
課程中。
Freemarker不會考慮這一點,但是您可能會遇到公眾獲取者。
如果您有getAdressHouse()
,請使用${houseTmp.adressHouse.street!''}
。 如果您有getAdress()
,請使用${houseTmp.adress.street!''}
。
我猜這是第二種情況,因為您聲明了tmpHouse.setAdress(tmpAdress);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.