2011-04-14 53 views
9

我打算使用J2ee,Spring 3.0n,Freemarker和jQuery創建一個Web應用程序。使用freemarker模板和J2EE的主頁面.net

我的問題是:有什麼辦法可以創建頁眉和頁腳的母版頁,幷包含所有Javascript文件,這樣我就可以直接在我的所有頁面中調用母版頁,並節省時間來一次又一次地包含所有js文件?

與.Net提供母版頁的概念相同,我想在Freemarker中創建自己的母版頁。

回答

9

基本上你寫了一個宏,我們稱它爲masterTemplate。

[#macro masterTemplate title="defaultTitle"] 
    <!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> 
     <title>${title}</title> 
     ... scripts, style sheets, meta information ... 
    </head> 
    <body> 
    <div id="header">...</div> 
    <div id="content"> 
     [#nested /] 
    </div> 
    <div id="footer>...</div> 
    </body> 
    </html> 
[/#macro] 

然後,你用這個宏在頁面中是這樣的:

[#import "/path/to/masterTemplate.ftl" as layout /] 

[@layout.masterTemplate title="My test page"] 
    ...content goes here... 
[/@layout.masterTemplate] 

您可以通過從頁面傳遞的所有相關數據,屬性到masterTemplate達到某種裝飾技術的:看到標題屬性。以同樣的方式,您可以傳遞其他腳本和樣式表。

這種技術如下所示:Freemarker wiki

+0

謝謝哥們,這是我在很多尋找感謝的事 – 2011-04-20 15:22:21