在Play中渲染没有任何控制器的视图

时间:2012-03-06 22:06:20

标签: localization backbone.js playframework client-side-templating

我正在使用Play for Model和Controller构建应用程序,但使用backbone.js和客户端模板。现在,我希望Play没有任何支持控制器来提供html模板。我知道我可以将模板放在公共目录中,但是我想使用Play的模板引擎从消息文件中输入模板中的字符串。我不需要任何其他数据,因此不希望为每个模板创建一个虚拟控制器的痛苦。我可以用Play吗?

2 个答案:

答案 0 :(得分:2)

您可以创建一个控制器并将模板名称作为参数传递,但我不确定这是不是一个好主意。

public static void controller(String templateName) {
    // add whatever logic is needed here
    renderTemplate("Controller/"+templateName+".html");    
}

然后将所有路由指向该控制器方法。但请忘记反向路由。

我想我仍然宁愿为每个模板使用单独的控制器方法。请记住,您可以使用@Before注释(请参阅Play Framework documentation)将消息字符串处理在一个位置,即在每个控制器方法之前执行。通过使用@With注释,您甚至可以在单独的类中使用此逻辑。

答案 1 :(得分:1)

您可以在代码中的任何位置使用模板引擎:

String result = TemplateLoader.load("Folder/template.html").render(data);