velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonas Bengtsson" <jona...@home.se>
Subject RE: Multiple templates in servlets
Date Fri, 02 Nov 2001 12:46:26 GMT
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?

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>


Mime
View raw message