2012-09-02 34 views
1

我欣賞的Play 2.0框架的一個特性是靜態編譯的視圖。如果控制器在不提供正確數量的正確類型的參數的情況下呈現視圖,則會引發編譯錯誤。這大大提高了可維護性,因爲控制器不需要通過運行應用程序來測試視圖差異,而是在編譯時出現。將Scalate集成到Play 2.0中

但是,標準的Play 2.0視圖模板使用與Scala結合的普通HTML作爲語言。我想使用Scalate,這樣我就可以將Scala與Scaml或Jade模板語言結合起來。但我不想使用Scalate在運行時編譯我的視圖,因爲我將失去上面提到的靜態編譯視圖的優勢。

因此,我試過使用xsbt-scalate-generator實現靜態編譯我的Jade視圖,如elsewhere所述。這隻能讓我獲得一半的權利 - 正確配置的插件可以生成相應的.class文件,但它的名稱和打包方式與普通的Play 2.0視圖不同。名爲index.scala.html的默認Play 2.0視圖被編譯爲包views.html中的文件index.class。但是,名爲index.jade的Jade視圖在默認(空白)包中創建了一個文件$_scalate_$default_jade.class。這個類不可導入,也不能在Java Play 2.0控制器中使用。

如何以我可以在我的控制器中編寫return ok(views.html.index.render(args));的方式生成我的Scalate視圖的類文件?

(它確實出現在生成的類提供至少名爲render()法)

回答