2014-06-10 71 views
2

我已經在JSF中創建了一個自定義標記,如my.taglib.xml文件中所定義。如何在JSF中轉義taglib文件中的特殊字符?

<namespace>http://example.com/ui</namespace> 

<tag> 
    <tag-name>viewParamValidationFailed</tag-name> 
    <attribute> 
     <name>redirect</name> 
     <required>true</required>    
     <type>java.lang.String</type> 
     <description>Location to redirect, in case validation/s or conversion/s of view parameters as specified by the <![CDATA[<o:viewParam>]]> tag fails.</description> 
    </attribute> 

    <handler-class>tags.ViewParamValidationFailed</handler-class> 
</tag> 

該標籤可以在XHTML頁面上使用,如下所示。

xmlns:my="http://example.com/ui" 

<my:viewParamValidationFailed redirect="Location.jsf"/> 

我正在使用NetBeans IDE 8.0。當按下ctrl + 空格以顯示redirect屬性的說明時,IDE將顯示以下文本。

重定向的位置,以確認/ s或轉換/ s的視圖 由標籤指定的參數失敗。

請注意在標籤說明中<o:viewParam>包圍在CDATA在這個缺少文本的as specified by the___tag fails.

如何逃避這樣的標籤庫文件,這樣的特殊字符,以便正確顯示的說明?

+0

如果你使用'<你有同樣的問題'和''>代替CDATA的? – helderdarocha

+0

'<'和'>'沒有區別 - 產生同樣的問題。在這篇文章之前已經嘗試過。 – Tiny

+0

我不得不在使用doclet時將逃生次數增加一倍。我相信這些描述可能是相似的。我發佈了一個答案。試試看。 – helderdarocha

回答

3

似乎說明框中的內容類似於逃脫HTML可以包括的doclet(在Javadoc中使用)。因此,如果您想要描述加粗的部分描述,則不能將文本包含在<strong>元素中,但必須將其包含在其轉義版本中:&lt;strong&gt;。例如,如果你使用:

<description>Location to &lt;strong&gt;redirect&lt;/strong&gt;, in ...</description> 

文本將出現在說明框中爲

位置到重定向,在...

,但如果你經常使用標籤他們將簡單地消失。

這意味着,如果你真的想顯示標籤,你將需要的逃逸。使用&amp;&lt;&amp;gt;作爲尖括號,或使用CDATA內部的轉義角尖括號。我沒有測試,但我敢肯定,這應該工作:

<![CDATA[&lt;o:viewParam&gt;]]> 
+0

正確的工作。謝謝。 – Tiny