Thanks Nathan. I did post this question on the Spring Forum first but got no response. Since I cannot seem to do exactly what I want I am using what you are calling a pathfinder. The thing that sucks is that I need to change the returns from all my controllers and than the includes inside all my templates.
No stress here though. I have a work around. It just seems like bad form and in the long run will potentially be harder to maintain. Again, thanks for the response. Jason Nathan Bubna wrote: > > I haven't used Spring with Velocity, so i can't help much. You may > have more luck on the spring forums. That said, here's a few thoughts > that may or may not help. > > On 1/22/07, darrowj <[EMAIL PROTECTED]> wrote: >> >> I have a client that wants to be able to display a totally different set >> of >> Velocity >> templates based on the Domain a user enters a web app. So completely >> different presentation layer but the same controllers, services, and >> database. >> >> I've created an Interceptor that finds the domain and the domainDirectory >> where the velocity templates will live for said domain and puts it in >> session for a given user. >> >> I could do something like return 'new ModelAndView(domainDirectory + >> "/home");' >> but I would rather not have to edit all of my controllers if possible >> because I think things will quickly change. > > Quickly changing things are difficult, but Spring's DI should help. > You could always create a "pathfinder" type object that your > controllers would use to find the right path, then inject the > pathfinder into your controllers, and just change the pathfinder > whenever "things change". > >> I'd like to dynamically change the Velocity resourceLoaderPath somehow >> based >> on the domain a user uses to get to the web application. > > That may be both difficult and unwise if Spring directly feeds that > path to the resourceLoader that Velocity's runtime is using. Changing > it might mean re-initializing Velocity every time you want to change > the path. That would cause very poor performance. > >> I've done a lot of searching and read that the VelocityEngineFactoryBean >> may >> be what I need but cannot make it work. In my appname-servlet.xml I have >> the >> following: >> >> <bean id="velocityConfigurer" >> class="org.springframework.web.servlet.view.veloci >> ty.VelocityConfigurer"> >> <property name="resourceLoaderPath"> >> <value>WEB-INF/velocity</value> >> </property> >> </bean> >> >> <bean id="velocityEngine" >> class="org.springframework.ui.velocity.VelocityEng >> ineFactoryBean"> >> <property name="velocityProperties"> >> <props> >> <prop key="resource.loader">class</prop> >> <prop key="class.resource.loader.class">org.apache.veloc >> ity.runtime.resource.loader.ClasspathResourceLoade r</prop> >> </props> >> </property> >> </bean> >> >> <bean id="domainInterceptor" >> class="com.somedomain.web.DomainInterceptor"> >> <property name="communityContextService"> >> <ref bean="communityContextService"/> >> </property> >> <property name="velocityEngine"> >> <ref bean="velocityEngine"/> >> </property> >> </bean> >> >> This does not work as my Interceptor complains of an setter error and >> I've >> reviewed and cannot resolve the problem. >> >> My real question is can the Velocity resourceLoaderPath be set >> dynamically >> by your web application? If so am I on the right track? >> -- >> View this message in context: >> http://www.nabble.com/Dynamic-Velocity-resourceLoaderPath-in-Spring--tf3061673.html#a8513803 >> Sent from the Velocity - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> 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] > > > -- View this message in context: http://www.nabble.com/Dynamic-Velocity-resourceLoaderPath-in-Spring--tf3061673.html#a8553396 Sent from the Velocity - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
