Below is my code
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);
I need to show it on JSP as follows
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
The problem I have is each entity has different properties (number of properties and names varies).
I am using JSTL c for each for iteration. Please help me.
Edit 1:-
For single list i would do something like below.
<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>
If you see above my headings are not in iteration. But in my case i will have my headings in list itself.
As long as the entities are already grouped by their “type”, just take the first item in the collection, iterate over its properties, and display the property names.
Then iterate over the entire entity list, displaying only each entity’s property values.
If they’re not already grouped by entity “type”, then you’ll need to sort them by
entityName, and follow the same procedure as above. The only difference would be that as you iterate over the entities you must track of the previous entity’s type. When the current entity’s type is different than the previous entity’s type, display the new headings and continue.