仅当Mustache Java中的Map中存在值时才打印列表

时间:2016-10-03 07:33:00

标签: java mustache

我希望仅在项目存在时才打印列表。我可以执行以下操作,如果它们存在,将打印出列表项。

<ul>
{{#myList}}
<li>{{value}}</li>
{{/myList}}
</ul>

但是,如果列表为空,我也不想打印出<ul></ul>标签。我可以通过向我的上下文context.isEmpty = myList.isEmpty();添加另一个属性来实现此目的但我想避免这种情况 - 列表本身已经有isEmpty(),有什么方法可以引用它吗?

这可能是Mustache Java吗?

2 个答案:

答案 0 :(得分:1)

我必须按照此处的描述进行操作:https://groups.google.com/forum/#!topic/mustachejava/UmVGdNtjlpM

DefaultMustacheFactory factory = new DefaultMustacheFactory(); 
factory.setObjectHandler(new ReflectionObjectHandler() { 
  @Override 
  protected boolean areMethodsAccessible(Map<?, ?> map) { 
    return true; 
  } 
}); 

{{#job.userMetadata.entrySet}} 
  <tr> 
    <td>{{key}}</td> 
    <td>{{value}}</td> 
  </tr> 
{{/job.userMetadata.entrySet}} 

答案 1 :(得分:0)

如果您在myList.size之前执行<ul></ul>

{{#myList.size}}
    <ul>
        {{#myList}}
            <li>{{value}}</li>
        {{/myList}}
        </ul>
{{/myList.size}}