freemarker配置,使用

最近在项目中用到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>

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

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

时间: 2024-10-12 11:36:55

freemarker配置,使用的相关文章

Struts2 freemarker 配置

Struts2 freemarker 配置 Struts2使用FreeMarker作为其黙认的模板技术,因此Strus2对FreeMarker的支持非常良好.在Struts2应用中使用FreeMarker模板技术,只需要在web.xml和Struts.xml文件中进行简单配置就可以使用了.  一.   须知:  1.下载freemarker.jar的架包 官网下载地址:http://freemarker.org/ 2.把freemarker.jar放进\WEB-INF\lib文件下面 3.配置w

FreeMarker配置详解

首先需要添加freemarker.jar到项目,如果项目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代码结构如下:         <!-- 设置freeMarker的配置文件路径 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"&g

Spring Boot从入门到进阶教程系列 -- 集成Freemarker配置

步骤1. 我们可先配置application.properties的Freemarker基本配置,可参考第一篇教程[Spring Boot从入门到进阶教程系列 -- 外部Tomcat多方式启动,加密解密配置数据] 核心配置 ######################################################## ### freemarker ######################################################## spring.fr

freemarker配置信息

<!--  <!– freemarker的配置 –> <bean id="freemarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/view/" /

Springboot Freemarker配置全局变量配置类

package com.xhd.read.config; import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.a

Java: FreeMarker的配置和使用

初学什么都不可以忽略的地方就是这个东西的官方网站:http://freemarker.org/.下载或者API都可以参考这里. FreeMarker是什么 非常的简单明了.FreeMarker是一个java包.实现了MVC模式,分离开发者和设计师.也就是分离html也java的代码. FreeMarker是如何工作的 这是官网的图.非常明确的说明了FreeMarker是如何运作的.首先需要有一个template模板,在那里就是一堆的html标签和一些专属FreeMarker的标签,这些标签之后会

Freemarker的使用

1.首先说下什么是freemarker? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件. 模板编写为FreeMarker Template Language (FTL).它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言. 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后

解决sitemesh3装饰页面不能使用freemarker标签问题

如题,这个问题其实在sitemesh2中已经很好的解决了,不过在sitemesh3中可能没有解决,所以要自己写代码解决了,下面我先讲下sitemesh2是如何解决的: <servlet> <servlet-name>sitemesh-freemarker<rvlet-name> <servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</s

Freemarker例子

1.引入架包 2.写ftl文件 3.代码 hello.ftl 你好啊,${hello},今天你的精神不错! if else 语句测试 <#if num gt 18><#-- 不使用 >,大部分时候,freemarker会把 > 解释成标签结束!--> 及格! <#else> 不及格! </#if> 测试list <#list list as dizhi > <b>${dizhi.country}</b> <