2017-12-11 2 views
1

Wie verwende ich j2htmls jede Methode, um Elemente einer Sammlung hinzuzufügen?Wie verwende ich j2html für jede Methode

Sie geben ein Beispiel auf https://j2html.com/examples.html

// each() lets you iterate through a collection and returns the generated HTML 
// as a DomContent object, meaning you can add siblings, which is not possible 
// using the stream api in the previous example 
body(
    div(attrs("#employees"), 
     p("Some sibling element"), 
     each(employees, employee -> 
      div(attrs(".employee"), 
       h2(employee.getName()), 
       img().withSrc(employee.getImgPath()), 
       p(employee.getTitle()) 
      ) 
     ) 
    ) 
) 

Aber sie definieren nicht, was Mitarbeiter oder Mitarbeiter tatsächlich sind.

In meinem Fall mag ich ein div (jeweils mit Etikett) Serie von Counter-Elementen hinzufügen, aber ich kann nicht sehen, wie es zu tun, so jetzt ich nur j2html für jeden einzelnen Zähler verwenden und Verpackung es dann mit hart codiertes Etikett.

sb.append("<div>\n"); 
for(Map.Entry<Integer, Counter> next:fsc.getCounters().entrySet()) 
{ 
    sb.append(label(next.getValue().getText()).attr("for","pb"+next.getKey().intValue())); 
    sb.append(render(progress() 
      .withId("pb"+next.getKey().intValue()) 
      .attr("value", next.getValue().getCounter().intValue()) 
      .attr("max", "100"))); 
    sb.append(rendern(br())); 
} 
sb.append("</div>\n"); 

Antwort

1

Okay, so, was ich nicht in dem Beispiel wurde Greifen war Mitarbeiter ist die Sammlung variabel und Mitarbeiter willkürliche ist, ist es einfach die lokale Variable der Schleife zugewiesen und alles, was Sie wollen sein kann.

So jetzt habe es funktioniert.

sb.append(rendern(table(each(fsc.getCounters().entrySet(), next -> 
     tr(
       td(
         label(next.getValue().getText()) 
           .attr(FOR,PB_PREFIX+next.getKey().intValue())), 
       td(
         iffElse(next.getValue().getBar().isIndeterminate(), 
           progress() 
             .withId(PB_PREFIX+next.getKey().intValue()), 
           progress() 
             .withId(PB_PREFIX+next.getKey().intValue()) 
             .attr(VALUE, next.getValue().getCounter().intValue()) 
             .attr(MAX, next.getValue().getBar().getMaximum()) 
         ) 
       ) 
     ) 
    ) 
)));  
Verwandte Themen