Freemarker 使用

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

@Controller

public 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文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值