2013-04-23 56 views
0

我想表現出類似的代碼primefaces展示:http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf如何顯示Facelets的代碼

我使用SyntaxHighlighter ,當我有小面預標籤文件,它的工作fine.But當我告訴喜歡短代碼:<h:outputtext value="test"/> 我代碼:

<pre class="xml" name="code" ><h:outputtext value="test"/></pre> 

它將顯示HTML代碼,JSF後編譯並呈現該代碼。 我想jsf不能編譯成html代碼。 如果我使用html特殊字符,它似乎更詳細的代碼。 如何配置或採取更多的代碼來做到這一點。

(對不起,我的英語)

感謝您的關注!

+0

如果你訪問你張貼在你的問題,查看源代碼的鏈接,你可以看到,他們使用'<'和''>(和其他人)符號代表JSF代碼。 – 2013-04-23 04:40:37

+0

@Luiggi門多薩:它似乎更詳細的代碼 – 2013-04-23 04:42:13

+0

哦,我不能訪問http://showcase.omnifaces.org/:| – 2013-04-23 05:01:29

回答

2

當直接在XHTML模板中編寫代碼,你真的需要手動轉義XML實體,如果你打算將它們原樣。

<pre class="xml" name="code">&lt;h:outputtext value="test"/&gt;</pre> 

難以閱讀?也許是一個初學者,但不是一個先進的。

或者,你可以在一個String,可以根據需要從文本(屬性)文件,甚至是DB填充的地方保存。

String code = "<h:outputText value=\"test\" />"; 

(請注意,您需要的時候要硬編碼爲Java String逃脫雙引號,你不需要逃避任何東西,當它存儲在一個文本文件或數據庫)

的Facelets會自動退出:

<pre class="xml" name="code">#{bean.code}</pre> 
+0

我使用第二種方法,用#{bean.code},bean中的代碼是StringBuffer並從數據庫中獲得),抱歉@BalusC:所以,沒有辦法在facelets中編碼(不使用特殊的html字符)? – 2013-04-23 11:28:20

+0

不需要。只要使用查找和替換智能方式,如果你有很多代碼需要轉義解釋爲XML。 – BalusC 2013-04-23 11:31:46

+0

謝謝,我真的很傷心:| – 2013-04-23 11:34:21

2

您需要<通過& LT交流;和>由& gt ;.

在其他情況下,將被視爲HTML。

+0

感謝@rekire,它似乎是更詳細的代碼。 – 2013-04-23 04:44:29

+1

對不起,我不確定我是否理解你,你想擁有代碼?這只是對字符串的簡單替換調用。 – rekire 2013-04-23 04:47:31

+0

我想JSF不能編譯像當我使用 2013-04-23 04:49:38