如何在JSF中转义taglib文件中的特殊字符?

时间:2014-06-10 19:17:52

标签: xml jsf facelets jsf-2.2

我在JSF中创建了一个自定义标记,如my.taglib.xml文件中所定义。

<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 + space 以显示redirect属性的描述时,IDE将显示以下文本。

  

重定向的位置,以防验证/ s或视图转换   标签指定的参数失败。

请注意,此文字中缺少标记说明中<o:viewParam>所附的CDATA - as specified by the___tag fails.

如何在这样的taglib文件中转义这些特殊字符,以便正确显示描述?

1 个答案:

答案 0 :(得分:3)

似乎说明框的内容类似于转义HTML ,您可以将其包含在 doclets (在Javadocs中使用)中。因此,如果您想要将描述的一部分粗体,则无法将文本括在<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;]]>