2016-10-03 1 views
0

Я хочу распечатать список, только если элементы существуют. Я могу сделать следующее, которое распечатает элементы списка, если они существуют.Распечатайте список только в том случае, если значения, существующие в Map в Mustache Java

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

Однако, если список пуст, я не хочу, чтобы распечатать <ul></ul> теги либо. Я могу добиться этого, добавив другое свойство в мой контекст context.isEmpty = myList.isEmpty();, но я хочу этого избежать - сам список уже имеет на нем isEmpty(), есть ли способ, которым я могу ссылаться на это?

Возможно ли это Усача Java?

ответ

0

Если вы делаете myList.size перед своим <ul></ul>?

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

Это не работает для меня. (Также не используется isEmpty) – Cheetah

+0

Вы пытались вместо 'isEmpty' использовать только' empty'? – pleft

+0

Да, я пробовал оба, это не сработало. См. Мой ответ за то, что я должен был сделать. – Cheetah

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}} 
Смежные вопросы