2011-10-25 37 views
0

下面是我的代碼如何使用JSP上的動態列標題顯示列表列表?

class Entity 
{ 
    private int id; 
    private String entityName; 

    private List<Property> properties; 

    // other properties and getters and setters 
} 

class Property 
{ 
    private int id; 
    private String propertyName; 
    private String propertyValue; 

    // other properties and getters and setters 
} 


List<Entity> entities = new ArrayList<Entity>(); 

// ---- Entity 1 
Entity entity1= new Entity(); 
entity1 . setEntityName("Person"); 

Property property1 = new Property(); 
property1 .setPropertyName("FirstName"); 
property1 .setPropertyValue("Peter"); 


Property property2 = new Property(); 
property2 .setPropertyName("LastName"); 
property2 .setPropertyValue("Pan"); 

Property property3 = new Property(); 
property3 .setPropertyName("Age"); 
property3 .setPropertyValue("28"); 


entity1.getProperties().add(property1); 
entity1.getProperties().add(property2); 
entity1.getProperties().add(property3); 

entities.add(entity1); 

// ---- Entity 2 
Entity entity2= new Entity(); 
entity2 . setEntityName("Location"); 

Property property1 = new Property(); 
property1 .setPropertyName("Address"); 
property1 .setPropertyValue("302 New york Street"); 


Property property2 = new Property(); 
property2 .setPropertyName("City"); 
property2 .setPropertyValue("New york"); 


Property property3 = new Property(); 
property3 .setPropertyName("Country"); 
property3 .setPropertyValue("US"); 

entity2.getProperties().add(property1); 
entity2.getProperties().add(property2); 
entity2.getProperties().add(property3); 

entities.add(entity2); 

我需要表現出來的JSP如下

Person 

    Firstname  LastName  Age 

    Peter   Pan    28 
    Van    helsing   50 
    Tom    Williamson  35 


    Location 

    Address     City   Country 

    302 New York Street  New York  US 
    Highway Street   Londona   UK 

我已經是每個實體都有不同的屬性(屬性和名稱的數量而變化)問題。

我爲每個迭代使用JSTL c。請幫幫我。

編輯1: -

對於單列表我會做類似下面。

<tr> 
    <th>Heading 1</th> 
    <th>Heading 2</th> 
    <th>Heading 3</th> 
</tr> 


<tr> 
<c:forEach items="${list}" var="item"> 
    <td>${item.property1}</td> 
    <td>${item.property2}</td> 
    <td>${item.property3}</td> 
</c:forEach> 
</tr> 

如果您在上面看到我的標題不在迭代中。但在我的情況下,我會將自己的標題列入清單。

+0

嗯,它不是*你的代碼,因爲如果它在同一個塊中,它不會編譯。 –

+0

它只是一個嵌套表,沒有什麼複雜的。告訴我你將如何顯示一個列表,並告訴你如何處理多個列表。 – Shahzeb

+0

@Dave牛頓。是的,它不是完整的代碼。我已經刪除了一些部分。但是我希望你能解決我遇到的問題。 – ashishjmeshram

回答

0

只要實體已按其「類型」分組,就可以獲取集合中的第一個項目,遍歷其屬性並顯示屬性名稱。

然後遍歷整個實體列表,只顯示每個實體的屬性值。

如果它們是而不是已按實體「類型」分組,則需要按entityName對它們進行分類,然後按照上述相同的步驟進行分類。唯一的區別是,當你遍歷實體時,你必須跟蹤前一個實體的類型。當前實體的類型與前一個實體的類型不同時,顯示新的標題並繼續。