Freemarker 的ftl模板遍历复杂Map的例子

Freemarker支持遍历Map,现在写一个遍历类似Map<String,Map<String,Object>>的方式

例如现在有这样一个Map<String,Object>  userInfo = new HashMap<String,Object>();

userInfo.put("username","username");

Map<String,Object> map = new HashMap<String,Object>();

map.put("key","value");

userInfo.put("map",map);

这样就构造出了一个复杂的Map

现在要在ftl模板中对这个map进行遍历

因为 ${userInfo.username}是个字符串这样就可以得到值,而userinfo.map是个Map对象所以采用以下

方式遍历,这些方法可以写在html区域的代码中也可以写在javascript区域的代码中

   <#assign map = userinfo.map>
     <#list map?keys as key> 
         ${key}   ------   ${map[key]}
      </option>
     </#list>

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FreeMarker是一种基于模板的Java模板引擎,它允许您使用模板来生成任何类型的文本输出。 FreeMarker使用FTLFreeMarker Template Language)作为其模板语言,FTL基本上是一个文本文件,其中包含模板指令和占位符,用于生成所需的输出。FTL模板可以包含HTML、XML、JSON或任何其他文本格式。 以下是一个简单的FreeMarker FTL模板示例: ``` <html> <head> <title>Welcome to FreeMarker!</title> </head> <body> <h1>Welcome ${user}!</h1> <p>Here are your orders:</p> <ul> <#list orders as order> <li>${order}</li> </#list> </ul> </body> </html> ``` 在此模板中,`${user}`和`${order}`是占位符,它们将被实际值替换。`<#list>`指令用于遍订单列表。 要使用FreeMarker,您需要创建一个Configuration对象,并将其配置为查找FTL模板的位置。然后,您可以使用Template对象加载模板并将数据模型传递给它。最后,使用Template.process()方法将数据模型与模板合并以生成输出。 以下是一个简单的Java示例: ``` Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setClassForTemplateLoading(this.getClass(), "/templates"); Template template = cfg.getTemplate("welcome.ftl"); Map<String, Object> data = new HashMap<>(); data.put("user", "John"); data.put("orders", Arrays.asList("Order 1", "Order 2", "Order 3")); Writer out = new StringWriter(); template.process(data, out); String output = out.toString(); ``` 在这个例子中,我们将模板放在`/templates`目录下,并将其加载到`Template`对象中。然后,我们创建一个包含用户和订单数据的Map,并将其传递给`Template.process()`方法。最后,我们将生成的输出保存在一个字符串中。 这只是一个简单的例子FreeMarker还有许多高级功能,例如条件语句、循环、自定义指令等。您可以在FreeMarker官方文档中找到更多信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值