2016-12-19 4 views
0

Я хочу создать руль Java шаблон что-то вроде:Loop в Java шаблон руль наряду с другими параметрами

"This is a sample template with {{parameter1}} {{#if object_list}} {{#each object_list}} {{object_list.somevar}} {{object_list.othervar}} {{/each}}{{/if}}" 

Прежде чем я успел сделать object_list.something, я даже не в состоянии сделать простой цикл. Я попытался следующие:

Map<String, String> map = new HashMap<String, String>(); 
    map.put("people", "[ Yehuda Katz, Alan Johnson, Charles Jolley ]"); 
    map.put("k2", "v2"); 

     System.out.println("Map: " 
      + handlebars.compileInline("{{#each people}} {{@index}}:{{this}} \n {{/each}}") 
      .apply(map));    
} 

и это дает:

Map: :[[email protected] 
    :false 

Любые указатели о том, как достичь этого? Примечание: Эти параметры будут получены в json-файле, поэтому я не могу (или не хочу) создавать список объектов на самом деле.

Я следую: https://github.com/jknack/handlebars.java

ответ

0

Могли бы сделать это с базой усами. Работает так, как ожидалось. Ниже приведен пример:

private static void test2() throws IOException { 
     HashMap<String, Object> scopes = new HashMap<String, Object>(); 
     scopes.put("name", "Mustache"); 

     List<String> features = new ArrayList<String>(); 
     features.add("f1"); 
     features.add("f2"); 

     scopes.put("features", features); 

     List<Map<String, String>> discounts = new ArrayList<Map<String,String>>(); 
     Map<String, String> discount1 = new HashMap<String, String>(); 
     Map<String, String> discount2 = new HashMap<String, String>(); 
     discount1.put("type", "a"); 
     discount1.put("value", "15"); 

     discount2.put("type", "b"); 
     discount2.put("value", "215"); 

     discounts.add(discount1); 
     discounts.add(discount2); 

     scopes.put("discounts", discounts); 

     Writer writer = new OutputStreamWriter(System.out); 
     MustacheFactory mf = new DefaultMustacheFactory(); 
     Mustache mustache = mf.compile(new StringReader("{{name}}, {{#features}} Feature: {{.}} {{/features}}! {{#discounts}} {{type}} {{value}}{{/discounts}}"), "example"); 
     mustache.execute(writer, scopes); 
     writer.flush(); 
} 
Смежные вопросы