I think if there is a lot of HTML markup then a velocity template is
definitely easier to read, and create using a HTML editor. However if
there is a lot of conditional / dynamic content you can get to a point
where rendering the HTML in Java is easier to do.

In terms of performance they are both very very fast.

regards Malcolm Edgar

On Fri, Jul 3, 2009 at 3:20 AM, Bob Schellink<[email protected]> wrote:
> WarnerJan Veldhuis wrote:
>>
>> Gents,
>>
>> I was wondering, what would be the best place for generating HTML? It can
>> either be in Velocity templates or by overriding the
>> Control#render(HtmlStringBuffer) and Control#getTag() methods.
>>
>> What do you normally do?
>
>
> I don't think there is a hard and fast rule here. Both approaches
> have pros and cons.
>
> Sticking to Java (#render) allows you use a debugger to step through code.
> Java is also a more powerful language to expose extension points (template
> pattern). For example you could have a method createLabel() invoked from
> your render method which subclasses can override to create a different
> label.
>
> One problem with Java though is that multiline Strings and interpolation
> isn't supported while templates engines do support this. So specifying the
> HTML in a template normally is easier to read and understand.
>
>
>> For example, I have a UserList extending a Panel, which shows a list of
>> users from my system. The HTML is just a simple DIV containing a title-DIV
>> and a UL/LI of users. So will it be a Velocity template with a #foreach, or
>> should I go and create custom controls and generate HTML on the fly?
>
>
> Sounds like a template would be easiest to begin with. You can always
> refactor it later if you need more flexibility.
>
> kind regards
>
> bob
>
>

Reply via email to