Freemarker 使用

来源:互联网 发布:炒股软件排名 编辑:程序博客网 时间:2024/06/07 07:18

freemarker使用场景
1.并发量高
2.单纯使用redis不能满足需求
目前企业中主要用Freemarker做静态页面或是页面展示
freemarker是java语言编写的模板引擎,与web容器无关

freemarker原理图
freemarker原理图

FreeMarker语法

  • 1.访问对象
  • ${person.id}
    2.访问list
list <#list persons as p>              ${p.id}/${p.name}     </#list>

3.获取当前选代的索引:
<#list persons as p>
${p_index}
</#list>

4.if

 <#list persons as p>             <#if p_index%2 != 0 || p_index==0>                          <span style="color:red">                index:${p_index}|${p.id}:${p.name}<br>                          </span>             <#else>                         <span style="color:blue">                index:${p_index}|${p.id}:${p.name}<br>                          </span>             </#if>      </#list>

5.日期类型

 默认格式 1date ${key?date}                   2:datetime ${key?datetime}                     3time ${key?time}   自定义格式 ${key?string("yyyy-MM-dd HH:mm:ss")}  

6.null处理

   1.${val!}   2.${val!默认值}   3.<#if curdate ??> 属性不为空 <#else> 属性为空 <#/if>

7.include

    <#include "/include/head.html">

Spring整合freemarker步骤
1.添加Maven依赖

 <dependency>    <groupId>org.springframework</groupId>       <artifactId>spring-context-support</artifactId>    <version>4.1.3.RELEASE</version> </dependency> <dependency>    <groupId>org.freemarker</groupId>    <artifactId>freemarker</artifactId>          <version>2.3.23</version>   </dependency>

2.配置bean

    class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">    <property name="templateLoaderPath" value="/WEB-INF/ftl/" />    <property name="defaultEncoding" value="UTF-8" /> </bean>

3.写模板

4.写Controller

@Controllerpublic class HtmlGenController {    @Autowired    private FreeMarkerConfig freeMarkerConfig;    @RequestMapping("/genhtml")    @ResponseBody    public String genHtml() throws Exception {        // 生成静态页面        Configuration configuration = freeMarkerConfig.getConfiguration();        Template template = configuration.getTemplate("hello.ftl");        Map data = new HashMap<>();        data.put("hello", "hello freemarker");        Writer out = new FileWriter(new File("G:/freemarker/out/test.html"));        template.process(data, out);        out.close();        // 返回结果        return "OK";    }}

运行后生成静态test.html文件

原创粉丝点击