2016-04-08 11 views
0

含まれているオブジェクトのリスト対象:Freemarkerの:</p> <pre><code>public class Adress { private String _street; private String _city; } </code></pre> <p>と別のJava:私はJavaオブジェクトを持って</p>例えば <p>FreeMarkerの言語と他のオブジェクトが含まれているオブジェクトのリストを印刷したい他のオブジェクト

public class House 
{ 
    private int _nb_room; 
    private Adress _adressHouse; 
} 

私はBDDのデータでリストを作成した後:

model.put('houseList',model.put('housesList',getHousesList()); 

そして、私のhtmlで私が持っている:私はHTMLにリストを送って、別のファイルで

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(); 
} 

<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にリストを送信する前にブレークポイントを実行すると、アドレスが内部にあります。

どうすれば家の住所にアクセスできますか?

+0

を宣言したように私はあなた 'House'クラスで')あなたは 'getAdressHouse()'や 'getAdressを(持っていますか、それは第二ケースです推測していますか? – ericbn

+0

はい私はそれを持っていますが、私はそれを書いていません:私はすべてのゲッターとセッターを持っています – Kvasir

+0

'$ {houseTmp.adress.street! ''}'を試しましたか? – ericbn

答えて

1

あなたのHouseクラスにprivate Adress _adressHouse;があります。

Freemarkerはそれを見ることはありませんが、パブリックゲッターにはあなたがいるかもしれません。

getAdressHouse()がある場合は、${houseTmp.adressHouse.street!''}を使用してください。 getAdress()の場合は、${houseTmp.adress.street!''}を使用してください。

あなたはtmpHouse.setAdress(tmpAdress);

+0

これはありがとう、私はそれを知らなかった説明...ありがとうまだ動作しません – Kvasir

+0

しかし、あなたのコメントは私の間違いを理解するのに役立ちます。ありがとう。 – Kvasir

関連する問題

 関連する問題