天天看點

Freemarker輸出$和html标簽等特殊符号

場景:程式員都不喜歡看文檔,而更喜歡抄例子。是以,我們把平台組的元件都做成例子供别人參考。我們前端展示層使用的是freemarker,是以遇到這個問題,比如我們要讓前端顯示freemarker自己的源碼時就有問題了(因為我們例子程式的頁面也是使用freemarker)。遇到的問題如下:

        1、如何顯示html源碼,而不是讓浏覽器解析這些html,方法是使用freemarker的html轉義。

              比如我們顯示img标簽,就是如此:${'<img src="xxxxxxx"/>'?html},這樣最終在頁面上展示的内容就是:<img src="xxxxxxx"/>,而不會被浏覽器解析。

         2、顯示freemarker源碼,比如${}符号,則可以如下:

              ${r'${obj.name}'},這樣最終顯示的結果就是:${obj.name},而不會被freemarker解析。這裡要注意,前邊那個标紅的“r”字元是關鍵點。

         3、自定義宏的結束符号不能出來的解決辦法:比如我們自定義了個宏叫做:<@cfw.column></@cfw.column>,如果要顯示源碼,結束的那個符号"</@cfw.column>”是顯示不出來的,這個時候可以采用字元轉義的方式,比如:

              ${'</@cfw.column''},這樣顯示的結果就是:</@cfw.column>

繼續閱讀