have you looked at using #parse() ?
> -----Original Message----- > From: e v a n l e o n a r d [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 05, 2005 12:58 PM > To: 'Velocity Users List'; 'Shinobu Kawai' > Subject: RE: Streaming from the middle of a template? > > > > > If all the components uses Velocity to render the content, > you must be > > using Template#merge or Velocity(Engine)#mergeTemplate or > > Velocity(Engine)#evaluate in each of your components, correct? > > If so, you can just put the Writer in the Context before rendering. > > context.put("writer", writer) > > And in the template, > > $component.render($writer) > > > Right right, exactly, but how to I get the writer? > > How do I get the writer from the parent velocity template > such that I can > pass it to the child templates and have there output slip > right into the > output of the parent? > > > -Evan > > > > > > -----Original Message----- > From: Shinobu Kawai [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 05, 2005 1:10 PM > To: Velocity Users List > Subject: Re: Streaming from the middle of a template? > > Hi Evan, > > > Here's what I'm doing: I've written a reusable html-control > model for > > creating html components within the struts framework using > velocity. > > These components use velocity themselves to render their content. > > These controls may also themselves contain other > sub-controls, and so > > on. It seems ineffecient for me for each of these sub-controls, to > > have to create a single large string and return it to its parent > > control to render it. I would rather pass a writer down through the > > execution hierarchy having each subcontrol add its output to the > > parents writer, thus using a single writer to achieve the total > > output, instead of a segmented writer.toString -> writer.toString -> > writer.toString sort of process. > > > > Does that make more sense? > > If all the components uses Velocity to render the content, > you must be using > Template#merge or Velocity(Engine)#mergeTemplate or > Velocity(Engine)#evaluate in each of your components, > correct? If so, you > can just put the Writer in the Context before rendering. > context.put("writer", writer) > And in the template, > $component.render($writer) > > Best regards, > -- Shinobu > > -- > Shinobu Kawai <[EMAIL PROTECTED]> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]