Как визуализировать шаблон из контроллера внутри шаблона - 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
упакуйте и добавьте туда свой суб-шаблон (отвечающий за отображение только части страницы), он ведет себя точно так же, как обычный шаблон.