SpringMVC Freemarker 全局变量的三种配置方式

摘要:
该方法始终在springservlet.xml中配置˂/

 方法一 直接在spring-servlet.xml 中进行配置

    <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">  
        <property name="location" value="classpath:freemarker.properties" />  
    </bean>  
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPaths" value="/templates" />
        <property name="defaultEncoding" value="utf-8" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="url_escaping_charset">UTF-8</prop>
                <prop key="locale">UTF-8</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="classic_compatible">true</prop>
            </props>
        </property>
        <property name="freemarkerVariables">
            <map>
                <entry key="BasePath" value="${base.path}" />
                <entry key="IncPath" value="${web.root}" />
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property>
    </bean>

    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />    

 freemarker.properties

base.path=localhost:8080
web.root=www.springmvc.com
 
 
方法二(推荐)自定义一个视图,继承FreeMarkerView
public class MyFreeMarkerView extends FreeMarkerView {
    private static final String CONTEXT_PATH = "base";

    @Override
    protected void exposeHelpers(Map<String, Object> model, HttpServletRequest request) throws Exception {
        model.put(CONTEXT_PATH, request.getContextPath());
        model.put("cxb", "caoxiaobo");
        super.exposeHelpers(model, request);
    }
}
    <!--视图解释器 -->  
    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
     <!-- 自定义视图 -->
     <property name="viewClass"> <value>com.view.freemarker.MyFreeMarkerView</value> </property> <property name="cache" value="true" /> <!-- <property name="prefix" value="/" /> --> <property name="suffix" value=".ftl"/> <property name="contentType" value="text/html;charset=UTF-8"></property> </bean>
 
方法三 自定义一个 FreeMarkerConfigurer 继承 FreeMarkerConfigurationFactory 并实现FreeMarkerConfig, InitializingBean, ResourceLoaderAware, ServletContextAware
// 这里其实就是完整的替换了FreeMarkerConfigurer
public
class MyFreeMarkerConfigurer extends FreeMarkerConfigurationFactory implements FreeMarkerConfig, InitializingBean, ResourceLoaderAware, ServletContextAware { private Configuration configuration; private TaglibFactory taglibFactory; @Override public void afterPropertiesSet() throws IOException, TemplateException { if (this.configuration == null) { this.configuration = createConfiguration(); } SimpleHash model = new SimpleHash(); model.put("baseUrl", "www.springmvc.com"); this.configuration.setAllSharedVariables(model); } // ... 省略很多方法 }
    <bean id="freemarkerConfig" class="com.view.freemarker.MyFreeMarkerConfigurer"> 
        <property name="templateLoaderPath" value="/" />   
        <property name="freemarkerSettings">  
            <props>  
                <prop key="locale">zh_CN</prop>
                <prop key="template_update_delay">0</prop>  
                <prop key="default_encoding">UTF-8</prop>  
                <prop key="number_format">0.##########</prop>  
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  
                <prop key="classic_compatible">true</prop>  
                <prop key="template_exception_handler">ignore</prop>  
            </props>  
        </property>
    </bean> 

免责声明:文章转载自《SpringMVC Freemarker 全局变量的三种配置方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇XAMPP 的安装配置(Linux 版)web校园招聘系统下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

SQL SERVER 查看数据库执行过哪些语句(SQL历史语句记录)

SQLSERVER查看数据库已执行的语句(SQL历史语句记录)1.查看SQL执行效率和语句SelectTOP1000ST。textAS“SQL语句已执行”,QS。execution_CountAS'执行次数',QS。total_ elapsed_timeAS“耗时”,QS。total_logical_ReadsAS“逻辑读取次数”,QS。total_logi...

安装pygame

在python3中安装pygame库。一段时间后,您可以看到安装成功,并且可以导入pygame...

海康、大华网络摄像机RTSP URL格式组成及参数配置

1.海康相机在IE浏览器中输入网络摄像头的IP地址,输入配置的用户名和密码,然后登录:视频:1。比特率类型:主流和子流,主流支持的分辨率相对较高;2.视频类型:如果需要音频和视频,则选择“复合流”;如果只需要视频,则选择“视频流”;3.分辨率设置不重复;4.码率类型:代码更改率!!!...

C# Task详解

1.任务线程池的优点与线程相比有很多优点,但线程池不方便使用。例如:◆ ThreadPool不支持线程取消、完成和失败通知等交互操作;◆ ThreadPool不支持线程执行顺序;在过去,如果开发人员想要实现上述功能,他们需要完成大量额外的工作。现在,FCL提供了一个更强大的概念:任务。任务基于线程池执行...

解决fiddler开启后打开浏览器提示无法访问网络

在使用python接口测试的过程中,jupyter经常被用来调试python代码。因为jupyter的默认代理端口是8888,所以当它启用时,它会打开fiddler数据包捕获并打开浏览器,提示“无法访问网络”。这个问题主要是由港口冲突造成的。您可以在工具选项连接中修改端口号,修改它,然后单击“确定”重新启动fiddler...

firefox插件-HackBar介绍与试用

HackBar实际上是一个包含一些黑客常用工具的小工具包。它的主要目的是帮助开发人员对代码进行安全审计优点是:-MD5/SHA1/SHA256哈希MySQL/MSSQLServer/Oracle快捷方式XSSulfunctions文本区域的URL重定向不会受到影响-MD5/SHA1/SHA 256哈什排列等-MySQL/MMSQLServer/Oacle快捷...