freemarker的指令

java代码

package freemarker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class TestFreemarker {
    public static void main(String[] args) throws IOException, TemplateException {
        Configuration cfg = new Configuration();
        //配置ftl查找目录
        cfg.setDirectoryForTemplateLoading(new File("templates"));
        //配置数据的抓取模式
        cfg.setObjectWrapper(new DefaultObjectWrapper());
        //构建数据
        Map root = new HashMap();
        root.put("user", "Big Joe");
        root.put("sex", "3");
        root.put("ye","2");
        String[] str=new String[]{"1","2","3","4"};
        root.put("arr", str);
        List list=new ArrayList();
        User user=new User();
        user.setId("1");
        user.setName("张三");
        list.add(user);
        User user1=new User();
        user1.setId("2");
        user1.setName("李四");
        list.add(user1);
        root.put("listuser", list);
        Map latest = new HashMap();
        root.put("latestProduct", latest);
        latest.put("url", "products/greenmouse.html");
        latest.put("name", "green mouse");
        //实例化模板对象
        Template temp=cfg.getTemplate("helloword.ftl");
        //输出控制台
        Writer out=new OutputStreamWriter(System.out);
        temp.process(root, out);
        out.flush();
        out.close();
        
       /* //实例化模板对象
        Template temp=cfg.getTemplate("helloword.ftl");
        FileOutputStream for=new FileOutputStream("D:\\");
        //生成html
        Writer out=new OutputStreamWriter(fos);
        temp.process(root, out);
        out.flush();
        out.close();*/
        
    }
}


freemarker模板

<!-- if elseif else-->
  <#if sex="1">
  男
  <#elseif sex="2">
  女
  <#else>
  人妖
  </#if>
  
  <!-- switch case -->
  <#switch ye>
  <#case "1">
  nihao
  <#break>
  <#case "2">
  ok
  <#break>
  </#switch>
  
  <!-- 循环  list  循环体内可以有逻辑判断-->
  <!-- 循环数组 -->
  <#list arr as tmp>
<!-- 判断是否有下一个元素 -->
  <#if tmp_has_next>
  有
  </#if>
  <!-- tmp_index获取下标 -->
  ${tmp}
  </#list>
  
<!-- 循环集合 里面放的是一个对象  对象中有id和name属性 -->
  <#list listuser as tmp1>
  ${tmp1.id}------${tmp1.name}
  </#list>

<!-- 循环一个map集合 -->
<#list map?keys as tmp1>
获取map中的key
</#list>
<#list map?values as tmp1>
获取map中的values
</#list>

<!-- 循环1到10 -->
<#list 1..10 as i>
${i}
</#list>

<!--- 定义一个变量 中间没有内容不用写结束标签 -->
<#assign a=20>
<!-- 包含指令-----include  如果包含的两个或以上ftl有相同的变量  取最后包含进来的变量-->
<#include "include.ftl">
<#include "include1.ftl">
<!-- 包含指令-----import 如果包含的两个ftl有相同的变量  可以使用别名取任意的变量-->
<#import "include.ftl" as v>
<#import "include1.ftl" as n>
${v.a}



macro-----宏 <!-- macro 可以理解为java里的方法   在调用时才会被执行-->
<#macro mymacro p1 p2>
${p1+p2}
</#macro>

<!-- 调用macro -->
<@mymacro p1=10 p2=30 />


<!-- 简单的函数使用 -->
<#assign str='hello moto'>
<!-- 获取长度 -->
${str?length}
<!-- 转大写 -->
${str?upper_case}
<!-- 去空格 -->
${str?trim}
<!-- 判断是否存在 -->
<#if aaaa?exists>
 ${aaaa}
</#if>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值