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