freemarker springmvc整合

本文详细介绍了如何将FreeMarker与SpringMVC进行整合,包括在SpringMVC配置文件中添加FreeMarker配置、定义自定义视图解析器解决路径问题以及实现获取上下文路径的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 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);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值