Как мне использовать j2html каждый метод

Как мне использовать j2htmls каждый метод для добавления элементов коллекции?

Они приводят пример на 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())
            )
        )
    )
)

Но они не определяют, какие сотрудники на самом деле.

В моем случае я хочу добавить ряд элементов Counter в div (каждый с меткой), но я не могу понять, как это сделать, поэтому сейчас я использую только j2html для каждого отдельного счетчика, а затем заключаю его в жестко закодированный тег.

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");

1 ответ

Решение

Итак, в этом примере я не понял, что сотрудники - это переменная коллекции, а сотрудник - произвольный, это просто локальная переменная, назначенная циклу, и может быть любым.

Так что теперь это работает.

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())
                        )
                )
        )
    )
)));    
Другие вопросы по тегам