Apache Velocity is a great template parsing tool. it can be used to generate source code based on template.
Usage pattern:
Java
VelocityEngine ve = new VelocityEngine();
ve.init();
Reader reader = new InputStreamReader(getClass().getResourceAsStream("/template.html"));
Context context = new VelocityContext();
context.put("status", eventStore.getEvents());
Writer writer = new StringWriter();
ve.evaluate(context, writer, "", reader);
System.out.println(writer.toString());
Template
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: left;
}
</style>
#foreach( $key in $status.keySet() )
<table>
<caption>$key</caption>
<tr>
<th>
Time
</th>
<th>
NODE
</th>
<th>
API
</th>
<th>
METHOD
</th>
<th>
MSG
</th>
<th>
STATUS
</th>
</tr>
#foreach( $event in $status.get($key) )
#set( $task = $event.getSource() )
<tr>
<td>
$event.getDatetime()
</td>
<td>
$task.getNode()
</td>
<td>
$task.getServiceAPI()
</td>
<td>
$task.getMethodname()
</td>
<td>
$event.getMsg()
</td>
<td>
$event.getStatus()
</td>
</tr>
#end
</table>
#end
近期评论