StringTemplate - How to iterate through list of business objects and output simple html? [closed]
Asked Answered
G

2

12

I've just started using StringTemplate in my C# project. I went through the documentation, but I can't seem to find a way to implement this simple scenario:

I have a list of simple business objects (let's say Orders) and I want them displayed inside a UL tag inside my html template.

So, my .st template looks like this (pseudo-code):

<html> some text <ul>[Order template]<li>[Order name here]</li>[/Order template]</ul></html>

and I want my output to be:

<html> some text <ul><li>Order 1</li><li>Order 2</li>...</ul></html>

I can't figure out how to make this work using StringTemplate. Any ideas?

Gonta answered 11/5, 2009 at 9:17 Comment(1)
There is a nice post that can help you: Localizable text template engine using StringTemplate 4Ascidium
A
29

You should use the following syntax:

<ul>
    $orders: {order|
        <li>Order $order.OrderId$</li>
    }$
</ul>

The documentation about this feature is really hard to find, I found some info here (search for the pipe symbol |).

Amenity answered 11/5, 2009 at 9:52 Comment(0)
A
0

That works for me also. If you are calling StringTemplate from Antlr as a StringTemplateGroup, the syntax is a little different. Replace $ with <>.

group DTO;

assign1(m, attributes) ::= <<
package demo;
import java.io.Serializable;

public class <m> implements Serializable {
    public <m>() {
        super();
    }

<attributes : {attribute |
protected <attribute.type> <attribute.name>;

public <attribute.type> get<attribute.name>() {
    return <attribute.name>;
}

public void set<attribute.name>(<attribute.type> <attribute.name>) {
    this.<attribute.name> = <attribute.name>;
}
}>
}

>>
Alonzo answered 23/3, 2010 at 17:17 Comment(1)
How do I get it working if for eg: "attribute.type" returns a complex object of type "Type" class. I am trying to implement the same, where the "attribute.type" returns an Object "Type", which has an attribute "typeName". I am unable to retrieve the TypeName. Please help !!Scrutineer

© 2022 - 2024 — McMap. All rights reserved.