如何在模板中从控制器渲染模板 - Java,Play 2.1

时间:2013-09-16 11:54:30

标签: scala playframework-2.0 playframework-2.1 scala-template

是否可以调用控制器方法在模板中呈现模板? 或者这完全是错误的方法?

在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));
}

1 个答案:

答案 0 :(得分:2)

如果你想从productTable视图中获取代码,你的方法不应该返回Result而只返回包含渲染代码的String .... aaaannnyyyyway,肯定有更好的方法在Play中渲染子模板,检查文档的Tags部分,它直接从视图中执行您想要的操作,当然您需要将产品对象传递给它。

只需在tags包中创建view包,然后在其中添加您的子模板(负责仅渲染页面),它的行为与普通模板完全相同。