2013-07-15 22 views
0

我想我的網站上創建AJAX導航與Freemarker作爲模板引擎請求頭。 如果頁面請求與XMLHttpRequest,沒有必要包括頁眉和頁腳。代碼將如下所示:獲取從FreeMarker的

[#if !XMLHttpRequest] 
    [#include "header.ftl"] 
[/#if] 
${content} 
[#if !XMLHttpRequest] 
    [#include "footer.ftl"] 
[/#if] 

我的問題是如何定義請求帶有AJAX。客戶端添加頭X-Requested-With:XMLHttpRequest,以及如何在Freemarker中獲取它? 我試圖找到它在HttpRequestHashModel

[#assign XMLHttpRequest = Request.headers['X-Requested-With']=="XMLHttpRequest" /] 

但它拋出錯誤Expression Request.headers is undefined。我也嘗試使用RequestParameters,它也無法幫助。

回答

1

FreeMarker的本身並沒有定義任何HTTP相關的變量;它不像JSP,它是一個通用的引擎;它只能看到被傳遞給它的變量,它不知道它們是什麼......他們只是名稱 - 值對儘可能FreeMarker的關注。因此,如果你需要這些信息,那麼你要麼將它傳遞給FreeMarker(可能全局使用過濾器或攔截器或任何你擁有的)或Web應用程序框架。

+0

感謝。我不得不編寫自定義的FreeMarkerView,請求標頭放在模板模型中,我的問題已經解決。 –

相關問題