如何插入像&和<在JSF组件的值属性中的特殊字符?

Raj*_*pta 25 xhtml jsf facelets

如何插入特殊字符,如&<成JSF组件value的属性?

例如:我想要这样的东西:

<h:outputText value="Tom & Jerry Show" />
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到以下异常:

javax.faces.view.facelets.FaceletException:Error Parsing /foo.xhtml:Error Traced [line:15]实体名称必须紧跟在实体引用中的'&'之后.

如果是<,我得到以下异常:

javax.faces.view.facelets.FaceletException:Error Parsing /foo.xhtml:Error Traced [line:15]与元素类型"h:outputText"关联的属性"value"的值不能包含"<"字符.

Bal*_*usC 59

您需要将它们转义为XML实体.

<h:outputText value="Tom &amp; Jerry Show" />
Run Code Online (Sandbox Code Playgroud)

此问题与JSF本身无关,而与视图技术无关.你显然使用的是Facelets(非常好!).然而,Facelets是一种基于XML的视图技术,因此您需要确保模板是格式良好的XML,并且所有要按原样表示的特殊字符都是如上所述进行转义的.

维基百科中,您可以找到预定义字符实体的列表,只要您希望按原样显示它们,就需要在XML中对其进行转义.它是以下字符实体:

"     &quot;
&     &amp;
'     &apos;
<     &lt;
>     &gt;
Run Code Online (Sandbox Code Playgroud)

也可以看看: