1

我欣赏的 Play 2.0 框架的一个特性是静态编译视图。如果控制器在没有提供正确数量的类型正确的参数的情况下呈现视图,则会引发编译错误。这大大提高了可维护性,因为控制器<>视图差异不必通过运行应用程序进行测试,而是在编译时出现。

然而,标准的 Play 2.0 视图模板使用纯 HTML 结合 Scala 作为一种语言。我想使用 Scalate,这样我就可以将 Scala 与不那么冗长的 Scaml 或 Jade 模板语言结合起来。但是我不想使用 Scalate 在运行时编译我的视图,因为我会失去上面提到的静态编译视图的优势。

因此,我尝试使用其他地方xsbt-scalate-generator描述的方法来实现我的 Jade 视图的静态编译。但这只是让我半途而废——正确配置的插件可以生成相应的文件,但它的命名和打包方式与普通的 Play 2.0 视图不同。一个名为 Play 2.0 的默认视图被编译为包中的一个文件。但是,名为 Jade 的视图会在默认(空白)包中创建一个文件。此类在 Java Play 2.0 控制器中不可导入且不可使用。.classindex.scala.htmlindex.classviews.htmlindex.jade$_scalate_$default_jade.class

如何以一种我可以在控制器中编写的方式生成我的 Scalate 视图的类文件return ok(views.html.index.render(args));

(看起来生成的类render()至少提供了一个名为的方法)

4

1 回答 1

1

我开始了一个插件来做到这一点。查看我的工作:https ://github.com/kryptt/play2-scalate-plugin

于 2013-05-08T17:37:57.580 回答