是否可以调用控制器方法在模板中呈现模板? 或者这完全是错误的方法?
在div容器中只显示一个sting但不是我的productTable模板中的redered html。
<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));
}
答案 0 :(得分:2)
如果你想从productTable视图中获取代码,你的方法不应该返回Result
而只返回包含渲染代码的String
.... aaaannnyyyyway,肯定有更好的方法在Play中渲染子模板,检查文档的Tags部分,它直接从视图中执行您想要的操作,当然您需要将产品对象传递给它。
只需在tags
包中创建view
包,然后在其中添加您的子模板(负责仅渲染页面),它的行为与普通模板完全相同。