Как визуализировать шаблон из контроллера внутри шаблона - Java, Play 2.1

Можно ли вызвать метод контроллера для отображения шаблона в шаблоне? Или это совершенно неправильный подход?

В контейнере div отображается только строка, но не отображаемый html из моего шаблона productTable.

Отображаемая строка внутри <div class="products">:

SimpleResult(200, Map(Content-Type -> text/html; charset=utf-8))

Шаблон:

@categories.map {cat =>
<div>some html</div>
<div class="products">@controller.Products.getByCatergoyId(cat.id)</div>
}

контроллер:

public static Result getByCatergoyId(Long catId) {
List<Product> products = Product.find.where().eq("category.id", catId).findList();
return ok(views.html.display.productTable.render(products));
}

1 ответ

Решение

Если вы хотите получить код из представления productTable, ваш метод не должен возвращать Result но просто String содержащий отрендеренный код.... aaaannnyyyyway, безусловно, есть гораздо лучший способ рендеринга под-шаблонов в Play, проверьте, что в разделе " Теги " документации он делает именно то, что вы хотите непосредственно из представления, конечно, вам нужно будет передать продукт возражать против этого.

Просто создать tags пакет в вашем view упакуйте и добавьте туда свой суб-шаблон (отвечающий за отображение только части страницы), он ведет себя точно так же, как обычный шаблон.

Другие вопросы по тегам