Search code examples
javaspringspring-mvcfreemarker

My problems in the integration between spring and freemarker


Where did I go wrong? when I start tomcat, everything is ok, freemarker is working ok, but in spring-mvc.xml I get the error[No setter found for property 'freemarkerSettings' in class:
'org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer']

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>3.2.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
</dependency>

and in my spring-mvc.xml

    <!-- Freemarker -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/view/" />
    <property name="freemarkerSettings">
        <props>
            <prop key="template_update_delay">10</prop>
            <prop key="defaultEncoding">UTF-8</prop>
            <prop key="url_escaping_charset">UTF-8</prop>
            <prop key="locale">zh_CN</prop>
            <prop key="boolean_format">true,false</prop>
            <prop key="time_format">HH:mm:ss</prop>
            <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
            <prop key="date_format">yyyy-MM-dd</prop>
            <prop key="number_format">#.##</prop>
            <prop key="whitespace_stripping">true</prop>
        </props>
    </property>
    <property name="freemarkerVariables">
        <map>
            <entry key="resources" value="/site-war/resources" />
        </map>
    </property>
</bean>

It seems that "templateLoaderPath" and "freemarkerSettings" 'freemarkerVariables' has errors [No setter found for property 'freemarkerSettings' in class 'org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer']
How to fixed, oops,my English is really poor!


Solution

  • You need to include spring-context-support.jar. As mentioned in this link, org.springframework.ui.freemarker and a number of other packages that used to reside in spring-context.jar have moved to spring-context-support.jar in 3.2.0