Display a list of java objects in velocity templates as html table

14,915

Try the following:

<tbody>
#foreach( $obj in $objs )
    <tr><td>$obj.Item1</td><td>$obj.Item2</td></tr>
#end
<tbody>

I assume that your list is put on the velocity context under the name objs and your SomeObject class has 2 fields: item1 and item2 with coresponding getters.

List<SomeObject> objs = ... //prepopulated
context.put("objs", objs);

See more on the velocity documentation.

Share:
14,915
NEO
Author by

NEO

Updated on June 29, 2022

Comments

  • NEO
    NEO almost 2 years

    I am fetching a list of objects from DB. I would like to populate them in to a html table using velocity templates.

    <table>
    <thead>
    <tr>
    <td>$value1 </td>
    <td>$value2 </td>
    </tr>
    </thead>
    <tbody>
    <!-- Iterate through the list (List<SomeObject>) and display them here,   -->
    </tbody>
    </table>
    

    For headers I am using the below code,

    VelocityContext context = new VelocityContext();
    context.put("value1", "text1");
    context.put("value2", "text2");
    

    I get data from objects as below,

    List<SomeObject> obj = new ArrayList<SomeObject>();
    obj.getItem1();
    obj.getItem2();
    

    All the individual items are Strings. How to populate the table body content?