This looks a lot like a religious discussion and didn't your mother tell
you about such having such dicsussions in public ;-\.

Edgar

-----Original Message-----
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]] 
Sent: Saturday, November 23, 2002 8:46 AM
To: Struts Developers List
Subject: Re: Velocity vs. JSP: objective tests?



On Friday, November 22, 2002, at 04:47 PM, Craig R. McClanahan wrote:
>>
>>>   #foreach $result in $results {
>>>     <tr>
>>>       <td>$result.ID</td>
>>>       <td>$result.Name</td>
>>>     </tr>
>>>   }
>>
>> actually, this is syntax is almost completely wrong.  :)
>>
>> a more fitting example would be:
>> #foreach( $result in $sometool.results )
>> <tr>
>>     <td>$result.ID</td>
>>     <td>$result.Name</td>
>> </tr>
>> #end
>>
>> velocity and it's supporting tools are evolving too. :-)
>>
>
> Sorry ... I was following an example from a published article (don't 
> remember where) so I presume that it (at least) *used* to be correct 
> :-0.

I think you are confusing webmacro syntax and velocity syntax.  
Velocity never supported the lack of parens in the foreach, and never 
supported { or } as block delimiters.

>
>> ...
>>> * Velocity advocates used to argue that using Velocity was safer
>>>   because it restricted what a page designer could do to calling
>>>   getter methods.  This was never a completely true argument
>>>   (how do *you* know that the getter method of the beans you are
>>>   calling doesn't mutate something?), but it's been pretty much
>>>   eliminated by the fact that you can call arbitrary methods
>>>   in Velocity.
>>
>> yes, it is possible to design badly even in Velocity, but perhaps we
>> could
>> agree it's at least harder in Velocity to do so.
>
> Harder != Impossible.
>
> This used to be the most compelling pro-Velocity argument, IMHO, 
> especially for people managing large content-rich web sites where you 
> really don't want a page author to be able to totally screw things up 
> by executing arbitarry code.  General method calls are very convenient
> (and
> they're in JSP 2.0's version of the expression language as well :-), 
> but
> there is no longer a difference in this regard.
>

Is that true?  I didn't think that general method calls were available.

>>
>> ...
>>>
>>> There was an interesting article on onjava.com about a project to
>>> implement a simple blogger app that used both Struts and Velocity:
>>>
>>>   http://www.onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html
>>>
>>> I was particularly struck by the following snippet of Velocity code:
>>>
>>>   $macros.showNavBar(true)
>>>
>>> which builds part of the UI by rendering the navigation bar.  I 
>>> don't know
>>> about you, but that looks an awful lot like a scriptlet equivalent:
>>>
>>>   <% macros.showNavBar(true); %>
>>>
>>> to me :-).
>>
>> yeah, no offense intended to David Johnson, but that's a really poor 
>> way to
>> use Velocity.  it looks as though that method is intended to spit out

>> some
>> HTML hardcoded into whatever $macros is or some such thing.  the HTML
>> shouldn't come from the java, it should be in the template to begin 
>> with, or
>> at least defined the global Velocimacro library.  that way the code 
>> could
>> just be:
>>
>> #showNavBar( true)
>>
>
> Fine ... still looks like a scriptlet to me :-).

Which was another feature introduced to JSP after Velocity?   It's good 
when the standard follows.  ;->

Seriously - What Nathan was saying had nothing to do with syntax - he's 
suggesting that something that generates HTML output shouldn't be 
written in Java, but rather by a designer in the designers environment, 
either JSP or Velocity or whatever.

So #shownavbar( true ) is a Velocimacro, a little parameterized 
Velocity template.  $macros.showNavBar(true) might be the same thing - 
invoking the method showNavBar(Boolean) that uses velocity inside to 
render templates/macros.  In that case, I think that's cool - because 
then the output doesn't really come from Java - it's still in velocity.

geir

--  
Geir Magnusson Jr                                   203-355-2219(w)
Adeptra, Inc.                                       203-247-1713(m)
[EMAIL PROTECTED]


--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to