【问题标题】:freemarker, parse values from templatefreemarker,从模板中解析值
【发布时间】:2011-04-11 15:34:00
【问题描述】:

可以用freemarker做next吗?

例如在模板中我指定了一些值(我希望我的语法不会误导):

<td>${{<img src="[1234:thumb]" /><img src="[3456:thumb]" />}?{images are missing}}</td>

想法是,如果应用程序可以创建值,则在模板中使用新值,如果不能 - 使用默认值。要点是我需要模板中的值(“1234:thumb”)来创建正确的输出。

这里应用程序从模板中获取“1234:thumb”和“3456:thumb”,并根据这些值创建图像。如果图像创建成功(两个图像),图像的路径写回输出:

<td><img src="images/1234.jpg" /><img src="images/3456.jpg" /></td>

如果没有创建任何图像,则将默认值(“图像丢失”)写入输出:

<td>images are missing</td>

所以 2 个问题:

  1. 是否可以将这些值存储在模板中并解析它们?
  2. 输出默认值的正确方法是什么(在模板或应用程序中的 if/else)?

【问题讨论】:

  • 我会说逻辑不应该在模板中。
  • @andy-pryor,是的,你是对的,这个逻辑是错误的。我以不同的方式做到了。

标签: java templates freemarker


【解决方案1】:

假设您的两个图像有两个变量:thumb1234 和 thumb3456。

您可以使用“??”来测试这些变量是否被设置。操作员。

<#if thumb1234?? && thumb3456??>
    <td><img src="${thumb1234}" /><img src="${thumb3456}" /></td>
<#else>
    <td>images are missing</td>
</#if>

【讨论】:

  • 谢谢你的回答,但这不是我问的。
猜你喜欢
  • 2023-03-11
  • 2012-09-07
  • 2014-09-01
  • 2018-02-25
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2013-03-18
相关资源
最近更新 更多