freemarker springmvc整合

来源:互联网 发布:富士国际语学院 知乎 编辑:程序博客网 时间:2024/05/17 13:10

    FreeMaker和SpringMVC的整合,其实很简单的。SpringMVC环境的搭建在这里就不多说了,我们这节主要是FreeMarker与SpringMVC整合。首先,在springmvc的配置文件普通视图之前,加入freemarker的视图


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    1. applicationContext.xml增加内容
    <!– freemarker的配置 –>
    <bean id="freemarkerConfigurer"
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            <property name="templateLoaderPath" value="/WEB-INF/jsp/" />
            <property name="defaultEncoding" value="UTF-8" />
            <property name="freemarkerSettings">
                    <props>
                            <prop key="template_update_delay">10</prop>
                            <prop key="locale">zh_CN</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>
                    </props>
            </property>
    </bean>
    <!– FreeMarker视图解析 如返回userinfo。。在这里配置后缀名ftl和视图解析器。。 –>
    <bean id="viewResolver"
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <!– 下面的设置为解决base变量的获取 –>
            <property name="viewClass" value="com.useol.util.MyFreeMakerView" />
            <property name="suffix" value=".html" />
            <property name="contentType" value="text/html;charset=UTF-8" />
            <property name="exposeRequestAttributes" value="true" />
            <property name="exposeSessionAttributes" value="true" />
            <property name="exposeSpringMacroHelpers" value="true" />
    </bean>
    <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource"
            p:basename="i18n/messages" />

    2. 其中MyFreeMakerView类为解决springmvc和freemaker整合后,获取basepath,即context目录的问题,源码如下:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package com.useol.util;
    import java.util.Map;
    import javax.servlet.http.HttpServletRequest;
    import org.springframework.web.servlet.view.freemarker.FreeMarkerView;
    /**
    *
    * @author duyaofei
    */
    public class MyFreeMakerView extends FreeMarkerView {
        private static final String CONTEXT_PATH = "base";
        @Override
        protected void exposeHelpers(Map model,
                HttpServletRequest request) throws Exception {
            model.put(CONTEXT_PATH, request.getContextPath());
            super.exposeHelpers(model, request);
        }
    }
0 0
原创粉丝点击