velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <ge...@optonline.net>
Subject Re: Multiple templates in servlets
Date Fri, 02 Nov 2001 12:56:04 GMT
On 11/2/01 7:46 AM, "Jonas Bengtsson" <jonas.b@home.se> wrote:

> ok I rest my case. If the increase of template is only 1 I don't have so
> much to argue about :-)
> Furthermore, my approach might have contradicted the MVC approach?
> 

Well, sort of.   Sort of because on one hand, you would have a strict rule
about there being a header, a body and a footer template, so its not as if
the controller was making any decisions about view.  On the other hand, the
designer really is constrained in making layout choices, having no choices
:)

My note was not a criticism as much as an observation - although I didn't
really understand what issues you were working around.  (If it was as simple
as trying to avoid having the layout templates, then I do get it..)

The nice thing about the frameing template approach is that you get the
option to easily mix things up and try new layouts w/o ever having to touch
java code...

I hope this answers the question.

> Thanks for the help!
> /Jonas
> 
>> -----Original Message-----
>> From: Geir Magnusson Jr. [mailto:geirm@optonline.net]
>> Sent: Friday, November 02, 2001 1:38 AM
>> To: velocity-user@jakarta.apache.org
>> Subject: Re: Multiple templates in servlets
>> 
>> 
>> On 11/1/01 7:26 PM, "Jonas Bengtsson" <jonas.b@home.se> wrote:
>> 
>>> Yes you have understood me correctly.
>>> Would it require much rework?
>>> 
>>> One thing would be to reduce the number of files.
>> 
>> Hm.  That strikes me as false economy, somehow, as you have to rewrite the
>> servlet, and do things differently than the ususal.  There is
>> nothing wrong
>> with being different per se, but to save 1 template? :)
>> 
>>> Another problem with a single template is, for instance, when one has a
>>> plug-in page:
>>> * each plug-in will generate some output to the page
>>> * there is no way of knowing which plug-ins there are
>>> If there would be a parseTemplate() method one could do like this:
>>> parseTemplate(getTemplate("header.vm"));
>>> for(int i=0;i<plugIns.length;i++) {
>>>  parseTemplate(plugIns[i].generateTemplate(context));
>>> }
>>> parseTemplate(getTemplate("footer.vm"));
>>> 
>>> or something like that...
>>> But how should this be solved with a single template?
>> 
>> When you say 'plug in' do you mean something like where the body changes
>> based on request, but the rest, header, footer, nav stay the same?
>> 
>> One solution is to use references in the #parse() such as
>> 
>> #parse( $header )
>> #parse( $body )
>> #parse( $footer )
>> 
>> So that the servlet chooses the 'plug-in' as $body, and puts that in the
>> context.  Then when it renders, it uses the body specified.
>> 
>> To match the example above, you could always do...
>> 
>> context.put("header", "header.vm");
>> context.put("plugins", plugins );
>> context.put("footer", "footer.vm");
>> 
>> and then render a 'frame' template that looks like
>> 
>> <table>
>>  <tr><td>#parse($header) </td></tr>
>>  <tr><td>
>>    #foreach( $template in $plugins )
>>      #parse( $template )
>>    #end
>>  </td></tr>
>>  <tr><td>#parse($footer) </td></tr>
>> </table>
>> 
>> This is a bit simplistic, but I think you get the idea...?
>> 
>> Are we on the right track?
>> 
>>> Thanks is advance,
>>> Jonas Bengtsson
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: Geir Magnusson Jr. [mailto:geirm@optonline.net]
>>>> Sent: Friday, November 02, 2001 12:52 AM
>>>> To: velocity-user@jakarta.apache.org
>>>> Subject: Re: Multiple templates in servlets
>>>> 
>>>> 
>>>> On 11/1/01 6:45 PM, "Jonas Bengtsson" <jonas.b@home.se> wrote:
>>>> 
>>>>> Hi,
>>>>> <newbie-quiestion-alert>
>>>>> Is it possible to use several templates in one servlet. For
>>>> instance if I
>>>>> have three templates called: header.vm, content.vm and
>> footer.vm. Is it
>>>>> possible to use all these templates from the servlet, i.e. not
>>>> with #parse
>>>>> directives.
>>>>> </newbie-question-alert>
>>>> 
>>>> If I understand what you mean - to not use something like a
>>>> 'frame' template
>>>> like
>>>> 
>>>> #parse("header.vm")
>>>> #parse("content.vm")
>>>> #parse("footer.vm")
>>>> 
>>>> Then you can actually render each individually into the output
>>>> stream.  The
>>>> included Velocity servlet isn't designed for this - you will have
>>>> to modify
>>>> or roll your own, but yes, it's possible.
>>>> 
>>>> Can I ask why you want to do this?
>>>> 
>>>> Geir
>>>> 
>>>> --
>>>> Geir Magnusson Jr.
>> geirm@optonline.net
>>>> System and Software Consulting
>>>> "They that can give up essential liberty to obtain a little
>>>> temporary safety
>>>> deserve neither liberty nor safety." - Benjamin Franklin
>>>> 
>>>> 
>>>> 
>>>> --
>>>> To unsubscribe, e-mail:
>>> <mailto:velocity-user-unsubscribe@jakarta.apache.org>
>>> For additional commands, e-mail:
>>> <mailto:velocity-user-help@jakarta.apache.org>
>>> 
>>> 
>>> 
>>> --
>>> To unsubscribe, e-mail:
>>> <mailto:velocity-user-unsubscribe@jakarta.apache.org>
>>> For additional commands, e-mail:
>>> <mailto:velocity-user-help@jakarta.apache.org>
>>> 
>> 
>> --
>> Geir Magnusson Jr.     geirm@optonline.net
>> System and Software Consulting
>> "Whoever would overthrow the liberty of a nation must begin by
>> subduing the
>> freeness of speech." - Benjamin Franklin
>> 
>> 
>> 
>> --
>> To unsubscribe, e-mail:
> <mailto:velocity-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:velocity-user-help@jakarta.apache.org>
> 
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:velocity-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:velocity-user-help@jakarta.apache.org>
> 

-- 
Geir Magnusson Jr.                                     geirm@optonline.net
System and Software Consulting
"They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety." - Benjamin Franklin



--
To unsubscribe, e-mail:   <mailto:velocity-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:velocity-user-help@jakarta.apache.org>


Mime
View raw message