Uploaded image for project: 'Spring Framework'
  1. Spring Framework
  2. SPR-1052

Support for jsp taglibs in freemarker templates

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0 M5
    • Component/s: Web
    • Labels:
      None
    • Last commented by a User:
      true

      Description

      It would be nice if Spring had support for jsp taglibs like f.x.

      <#assign tolog=JspTaglibs["/WEB-INF/jsp/tolog.tld"]>

      as decribed on http://fmpp.sourceforge.net/freemarker/pgui_misc_servlet.html (see the heading "Using JSP custom tags in FTL")

        Activity

        Hide
        robh Rob Harrop added a comment -

        All,

        I updated FreeMarkerView and FreeMarkerConfigurer as appropriate so this should now just work. Can anyone who needs this feature please try it out. I gave it a basic run in a local Tomcat but feedback from a real usage scenario would be great.

        Rob

        Show
        robh Rob Harrop added a comment - All, I updated FreeMarkerView and FreeMarkerConfigurer as appropriate so this should now just work . Can anyone who needs this feature please try it out. I gave it a basic run in a local Tomcat but feedback from a real usage scenario would be great. Rob
        Hide
        turelto Tom Turelinckx added a comment -

        Rob,

        I've just replaced all usages of TaglibFreeMarkerView with the regular FreeMarkerView in several of our real-world applications which heavily use the taglib functionality, and it seems to work just fine! Waiting for RC1 to deploy into production...

        Tom

        Show
        turelto Tom Turelinckx added a comment - Rob, I've just replaced all usages of TaglibFreeMarkerView with the regular FreeMarkerView in several of our real-world applications which heavily use the taglib functionality, and it seems to work just fine! Waiting for RC1 to deploy into production... Tom
        Hide
        nrichards Nick Richards added a comment -

        To quote Homer, "Holy Macaroni!". Integrating both Erik's and Tom's code gives me JspTaglibs access in my out of the box spring + freemarker setup. Thanks very much! (and to the rest of the Spring folks too!)

        This JspTaglibs support really needs to be made a part of Spring, or made into a filter. Immediately after discovering the no-taglibs limitation with the out of the box Spring integration, I felt like I had to drop FreeMarker...that was a "deal breaker".

        I opted to drop Tom's Views.properties and go with Erik's bean config xml. Here's mine:

        <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
        </bean>
        <bean id="freemarkerServletContextModel"
        class="springext.web.servlet.view.freemarker.support.ServletContextModelFactoryBean"/>
        <bean id="freemarkerTaglibFactory"
        class="springext.web.servlet.view.freemarker.support.TaglibFactoryBean"/>
        <bean id="viewResolver"
        class="springext.web.servlet.view.freemarker.TaglibFreeMarkerViewResolver">
        <property name="servletContextModel" ref="freemarkerServletContextModel" />
        <property name="taglibFactory" ref="freemarkerTaglibFactory" />
        <property name="cache" value="true" />
        <property name="prefix" value="" />
        <property name="suffix" value=".ftl" />
        <property name="exposeSpringMacroHelpers"
        value="true" />
        </bean>

        Nick

        Show
        nrichards Nick Richards added a comment - To quote Homer, "Holy Macaroni!". Integrating both Erik's and Tom's code gives me JspTaglibs access in my out of the box spring + freemarker setup. Thanks very much! (and to the rest of the Spring folks too!) This JspTaglibs support really needs to be made a part of Spring, or made into a filter. Immediately after discovering the no-taglibs limitation with the out of the box Spring integration, I felt like I had to drop FreeMarker...that was a "deal breaker". I opted to drop Tom's Views.properties and go with Erik's bean config xml. Here's mine: <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/ftl/"/> </bean> <bean id="freemarkerServletContextModel" class="springext.web.servlet.view.freemarker.support.ServletContextModelFactoryBean"/> <bean id="freemarkerTaglibFactory" class="springext.web.servlet.view.freemarker.support.TaglibFactoryBean"/> <bean id="viewResolver" class="springext.web.servlet.view.freemarker.TaglibFreeMarkerViewResolver"> <property name="servletContextModel" ref="freemarkerServletContextModel" /> <property name="taglibFactory" ref="freemarkerTaglibFactory" /> <property name="cache" value="true" /> <property name="prefix" value="" /> <property name="suffix" value=".ftl" /> <property name="exposeSpringMacroHelpers" value="true" /> </bean> Nick
        Hide
        nrichards Nick Richards added a comment -

        FYI I am still on 1.2.6, not sure about jumping to 2.0, worried about destabilization.... Cheers.

        Show
        nrichards Nick Richards added a comment - FYI I am still on 1.2.6, not sure about jumping to 2.0, worried about destabilization.... Cheers.
        Hide
        walbar Waldemar Baraldi added a comment -

        I have started a new thread in the forum regarding an issue using this feature.

        http://forum.springframework.org/showthread.php?t=35156

        Show
        walbar Waldemar Baraldi added a comment - I have started a new thread in the forum regarding an issue using this feature. http://forum.springframework.org/showthread.php?t=35156

          People

          • Assignee:
            robh Rob Harrop
            Reporter:
            kajh Kaj Hejer
            Last updater:
            Trevor Marshall
          • Votes:
            4 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Days since last comment:
              10 years, 2 weeks, 1 day ago