在我的JSF应用程序中,我尝试使用fn:replace()
将"
替换为""
。我尝试了以下方法:
<h:outputText value="#{fn:replace(str, '\"', '\"\"')}" />
但是,它会导致XML解析异常:
javax.faces.view.facelets.FaceletException:Error Parsing /test.xhtml:Error Traced [line:20]元素类型“h:outputText”必须后跟属性规范,“&gt;”或“/&gt;”。
相同的代码适用于下面的其他字符:
<h:outputText value="#{fn:replace(str, 'a', 'b')}" />
如何使用fn:replace()
两个双引号替换双引号?
答案 0 :(得分:1)
确实,这是令人讨厌的。 "
在XML中有特殊处理。它表示属性值的开始和结束。最好的办法是在<c:set>
的帮助下将其参数化为另一个变量。
<c:set var="doublequote" value='"' />
<c:set var="twodoublequotes" value='""' />
<h:outputText value="#{fn:replace(bean.string, doublequote, twodoublequotes)}" />