freemarker 空白處理

2021-09-07 02:20:12 字數 1159 閱讀 8815

1 乙個簡短的引論

html 和 xml 都不是對空白敏感的,可是這麼多多餘的空白是非常令人頭疼的,並且新增處理後的 html 檔案大小也是不是必需的。當然,對於空白敏感的方式的輸出這依然是個大問題。

freemarker 提供以下的工具來處理這個問題:

從輸出中移除空白的工具(移除臨近的空白):

2 剝離空白

假設對於模板來說使這個特性成為可能的話,那麼它就會自己主動忽略(也就是不在輸出中列印出來)兩種典型的多餘空白:

預設的情況下剝離空白是開啟的,程式猿能夠留著無論( 建議這樣做 )。

注意開啟剝離空白時不會減少模板執行的效率,剝離空白的操作在模板載入時就已經完畢了。

剝離空白能夠為單獨的一行關閉,就是使用 nt 指令(對沒有去掉空白的行來說)。

3 使用 compress 指令

第二種方法就是使用 compress 指令,和剝離空白相反,這個工作是直接基於生成的輸出內容,而不是對於模板進行。也就是說,它會動態地檢查輸出內容,而不會檢查生成輸出 ftl 的程式。

它會非常強勢地移除縮排,空行和反覆的空格/製表符(能夠閱讀參考手冊部分來獲取很多其它資訊)。

所以對於以下這段**:

<#compress>

<#assign users = [,

,]>

list of users:

<#list users as user>

<#if !user.hidden>

- $that's all.

list of users:

- joe

- julia

that's all.

在預設情況下,名為 compress 的使用者自己定義指令是能夠在資料模型中存在的(因為向下相容特性)。這和指令是同樣的,除了能夠選擇設定 single_line 屬性,這將 會 移 除 所 有 的介 於 其 中的 換 行 符 。在 最 後 那 個例 子 中 , 假設 使 用 <@compress

single_line=true>...來取代<#compress>... ,那麼就會得到例如以下輸出:

list of users: - joe - julia that's all.

form空白及iframe空白處理

在網頁裡加form的時候缺省會上下的兩塊空白,用下面的辦法解決它 法一 設定css物件的margin屬性為0 第一行第二行 方法二 把塊元素設定為行內元素 第一行第一行 或 iframe 右邊也會出現有空白問題 解決方法 在vs.net 2008 中新建頁時會有 這個標準,但對於ie 6 不支援這個...

JS實現點選空白處彈窗消失

doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title 點選空白處彈窗消失 title style input te...

點選按鈕顯示,點選空白處隱藏

html text align center 多數情況下,8個領域中除了知識常識外的其他7個領域,都應優先學習 各個領域中的核心類技能優先學習,核心類技能中,技能年齡小的優先學習。button class xiaotieshi id btnshow value 選課貼士 js function 按鈕...