Thanks for the detailed information, Nathan! I already have a subclass of the VVS, so I think I'll try that route, although I hope to upgrade to VelocityTools2 for our Fall release...
-----Original Message----- From: Nathan Bubna [mailto:[EMAIL PROTECTED] Sent: Monday, May 05, 2008 2:43 PM To: Velocity Users List Subject: Re: Invoking VVS From Java Code Any chance you're using VelocityTools 2? If so, then this is easy. It was one of the big objectives for version 2 to make this simple. All you need is either a FilterConfig, ServletConfig, or even just the ServletContext and you can retrieve the VelocityView instance that the VVS is using. In VelocityTools 1.x, it's trickier and depends a bit on what you are trying to do. Here's the basics: 1. create a subclass of the VVS 2. have the subclass override init(ServletConfig) with a method that: a. calls super.init(config) b. puts the toolboxManager (a protected member variable) and the result of getVelocityEngine() (a protected method) in the servlet context attributes 3. in the code you wish to do this rendering, get the toolboxManager and velocityEngine out of the servlet context attributes 4. create a ChainedContext using the engine, request, response (can be null), and servlet context 5. call yourChainedContext.setToolbox(toolboxManager.getToolbox(yourChainedConte xt)) 6. get your template from velocityEngine.getTemplate(templateName) 7. merge the template with yourChainedContext into the Writer of your choice i suppose you might simplify some of the above by just putting the servlet instance itself into the servlet context and having it do the context creation and template retrieval through its createContext(...) and getTemplate(name) methods, but it seems a little odd to be passing a servlet itself around On Mon, May 5, 2008 at 12:43 PM, White, Tim <[EMAIL PROTECTED]> wrote: > Hello - > > My application has a Velocity View Servlet running (extremely well). > > In some cases, I'd like to use it to generate rendered output to a > String inside another part of the application. > > Is there some way I can latch onto the Velocity that VVS is using to > render a template without doing a URL connection over to VVS? > > I'd like to avoid duplicating all the setup logic that I've built > for VVS to initialize a separate Velocity engine for this purpose. > > Thanks, > > Tim > > > This communication is the property of Qwest and may contain > confidential or privileged information. Unauthorized use of this > communication is strictly prohibited and may be unlawful. If you > have received this communication in error, please immediately notify > the sender by reply e-mail and destroy all copies of the communication and any attachments. > --------------------------------------------------------------------- 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]
