如何插入像&amp ;;这样的特殊字符和<进入JSF组件'价值属性?

时间:2011-07-30 14:44:26

标签: jsf xhtml facelets

如何将&<等特殊字符插入JSF组件value属性?

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

<h:outputText value="Tom & Jerry Show" />

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

  

javax.faces.view.facelets.FaceletException:Error Parsing /foo.xhtml:Error Traced [line:15]实体名称必须紧跟'&amp;'在实体参考中。

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

  

javax.faces.view.facelets.FaceletException:Error Parsing /foo.xhtml:Error Traced [line:15]与元素类型“h:outputText”关联的属性“value”的值不得包含'&lt; ;”字符。

1 个答案:

答案 0 :(得分:58)

您需要将它们转义为XML entities

<h:outputText value="Tom &amp; Jerry Show" />

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

wikipedia中,只要您希望按原样显示,就可以在XML中找到需要转义的预定义字符实体列表。它是以下字符实体:

"     &quot;
&     &amp;
'     &apos;
<     &lt;
>     &gt;

另见: