2011-05-09 49 views
1

我已按照用戶手冊應用默認模板,例如,在項目src/main/webapp/WEB-INF/scalate/layouts/default.scaml我有一個應用於所有scaml文件的模板,但是當我打開我的測試頁面(在src/main/webapp/WEB -INF/views/x/view.scaml)它只會呈現該頁面中的內容。即使我在頂部放置了一個明確的佈局屬性,它仍然不呈現,即未應用scalate/scaml佈局

- attributes ("layout") = "/WEB-INF/scalate/layouts/default.scaml" 

任何想法,我可能做錯了什麼?

+0

這似乎暗示默認佈局策略已更改爲Null策略:http://fusesource.com/issues/browse/SCALATE-34。有關如何設置佈局策略的任何想法?我不認爲這是在文檔中,或者我沒有看到它... – Kevin 2011-05-09 15:07:54

+0

我使用的是Scalate的Spring View解析器,ScalateViewResolver。似乎佈局策略應該針對該類別設置,但我認爲沒有辦法做到這一點。 – Kevin 2011-05-09 15:17:20

回答

1

挖掘到scalate源代碼(1.4.1),看來如果應用佈局,則預期viewName前綴爲「layout:」,請參閱https://github.com/scalate/scalate/blob/master/scalate-spring-mvc/src/main/scala/org/fusesource/scalate/spring/view/ScalateViewResolver.scala

這似乎是一個很奇怪的決定,因爲文檔表明,佈局可以在每個視圖基礎上做禁用:

- attributes("layout") = "" 

有鑑於此,我不知道爲什麼佈局默認被禁用,每個視圖必須明確要求啓用佈局功能。

+0

這看起來是用於scalate的spring-mvc插件的一個特性;不是scalate本身。對於其餘的Scalate模板,使用您提到的機制應用到佈局。不幸的是,我對spring-mvc知之甚少,無法知道這個佈局:前綴想法是否是件好事 – 2011-05-10 18:15:13