最近在项目中用到freemarker,总是报一些莫名其妙的错误。

调查得知是由于在配置文件中属性【tag_syntax】的设置问题,我们的环境下该属性(auto_detect)默认设置了自动检测,也就是说根据第一出现标签的样式来决定哪一种标签的写法是合法的。比如说第一行使用标签的地方使用的是[]的话,那么在接下来的使用中,都必须保持一致否则就会出错!

在web.xml中配置当前前端控制器(DispatcherServlet)sss。

根据配置可以看到该控制器需要的配置文件名字为:sss-servlet-front.xml(当然此处可可以不用指定,不指定会默认寻找/WEB-INF/[servlet名字]-servlet.xm)

1、web.xml内容:

<servlet>
<servlet-name>sss</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/sss-servlet-front.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

2、sss-servlet-front.xml内容

下面黄色部分为freemarker的设置(非完全)

<bean id="freemarkerViewResolver" class="com.ydd.common.web.springmvc.SimpleFreeMarkerViewResolver">

<property name="prefix" value="/tmp/"/>
<property name="suffix" value=".html"/>
<property name="contentType" value="text/html; charset=UTF-8"/>
<property name="exposeRequestAttributes" value="false"/>
<property name="exposeSessionAttributes" value="true"/>
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!--获取标签配置-->
<property name="freemarkerVariables" value="#{propertyUtils.getBeanMap('directive.')}"/>
<property name="templateLoaderPath" value="/WEB-INF"/>
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">auto_detect</prop><!-- 设置标签类型 auto_detect(自动检测第一次出现的标签类型)、angle_bracket(<>)、square_bracket([])-->
<prop key="template_update_delay">5</prop><!-- 刷新模板的周期,单位为秒 -->
<prop key="defaultEncoding">UTF-8</prop><!--  模板的编码格式 -->
<prop key="url_escaping_charset">UTF-8</prop><!-- URL编码  -->
<prop key="locale">zh_CN</prop><!--  本地化设置 -->
<prop key="boolean_format">true,false</prop><!-- 布尔型格式 -->
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop><!-- 显示日期时间格式 -->
<prop key="date_format">yyyy-MM-dd</prop><!-- 显示日期格式 -->
<prop key="time_format">HH:mm:ss</prop><!--  显示时间格式 -->
<prop key="number_format">0.######</prop><!-- 显示数字格式 -->
<prop key="whitespace_stripping">true</prop><!--  去掉多余的空格 -->
<prop key="classic_compatible">true</prop><!-- 如果变量为Null转化为空字符串 -->
<prop key="auto_import">/ftl/uke/index.ftl as p,/ftl/spring.ftl as s</prop><!-- 每个freemarker视图页面自动导入ftl文件 -->
</props>
</property>
</bean>

本人可能有理解不到位的地方,如有不当之处,欢迎大家指正!!!如需转载请注明出处,谢谢!

如果本文对你有帮助请留下你的足迹。。。你的互动对我来说很重要!

freemarker配置,使用的更多相关文章

  1. SpringBoot下配置FreeMarker配置远程模版

    需求产生原因 要求在同一个接口中,根据不同的参数,返回不同的视图结果 所有的视图中的数据基本一致 要求页面能静态化,优化SEO 例如:A接口返回客户的信息 客户A在调用接口时,返回其个性化定制的页面A ...

  2. freemarker配置信息

    <!--  <!– freemarker的配置 –> <bean id="freemarkerConfigurer" class="org.spr ...

  3. FreeMarker配置详解

    首先需要添加freemarker.jar到项目,如果项目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代码结构如下:         <!-- 设置 ...

  4. springboot集成freemarker 配置application.properties详解

    #配置freemarker详解 #spring.freemarker.allow-request-override=false # Set whether HttpServletRequest att ...

  5. 使用FreeMarker配置动态模板

    FreeMarker动态模板 目录 FreeMarker动态模板 前言 准备工作 FreeMarker 代码构建 项目结构 创建 Configuration 实例 调用 模板文件 调用结果 Tips ...

  6. Spring boot freemarker 配置

    spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Dri ...

  7. SpringMVC整合freeMarker实现页面静态化+SpringMVC配置多视图

    一.背景 1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于 ...

  8. spring boot 配置 freemarker

    1.springboot 中自带的页面渲染工具为thymeleaf 还有freemarker 这两种模板引擎 简单比较下两者不同, 1.1freemaker 优点 freemarker 不足:thym ...

  9. Java: FreeMarker的配置和使用

    初学什么都不可以忽略的地方就是这个东西的官方网站:http://freemarker.org/.下载或者API都可以参考这里. FreeMarker是什么 非常的简单明了.FreeMarker是一个j ...

随机推荐

  1. 【floyd】 poj 2240

    #include <iostream> #include <map> #include <string> #include <memory.h> usi ...

  2. OpenGL学习-------visual studio 2010配置和第一个OpenGL程序讲解

    OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenG ...

  3. 简单的划分数问题<划分问题>

    将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 思路: 动态规 ...

  4. Android Fragment 真正的完全解析(下)---转

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...

  5. JSON资料整理(转)

    目录 1.什么是json 2.json语法规则 3.json基础结构 4.json基础示例 5.JSON和XML比较 6. .NET操作JSON 原始方式 通用方式 内置方式 契约方式 通过序列化将. ...

  6. Matplotlib中文显示的问题

    原文地址:http://blog.csdn.net/rumswell/article/details/6544377 #Matplotlib中文显示有问题,当然可以修改配置文件matplotlibrc ...

  7. iOS开发中控制器切换方式Modal

    简介 在iPhone开发中 Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 在iPad开发中 Modal的使用频率也是非常高的 对比iPhone开发,Mo ...

  8. 自行修改android.jar使其包含隐藏api

    1) 从指定版本的rom内获取到framework.jar 2) 解压framework.jar和android sdk内的android.jar 3) 将framework.jar解出来的东西拷到a ...

  9. 小P的强力值

    小P的强力值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在虚拟世界中有一只小宠物小P.小P有K种属性,每种属性的初始值为Ai.小Ho送给了小Hi若干颗药丸,每 ...

  10. h2database. 官方文档

    http://www.h2database.com/html/advanced.html http://www.h2database.com/html/tutorial.html#csv http:/ ...