在JSF中包含cdata块时,ajax请求出现问题

在JSF中包含cdata块时,ajax请求出现问题,ajax,jsf-2,Ajax,Jsf 2,我有一个jsf2 xhtml页面: <a4j:commandButton render="blockId" /> <h:panelGroupid="blockId"> <ui:include src="apage.xhtml" /> </h:panelGroup> 其中包括apage.xhtml: <html ...> <ui:composition> <script type=

我有一个jsf2 xhtml页面:

<a4j:commandButton render="blockId" />

<h:panelGroupid="blockId">
    <ui:include src="apage.xhtml" />
</h:panelGroup>

其中包括apage.xhtml

<html ...>
    <ui:composition>
        <script type="text/javascript">
        //<![CDATA[
            //javascript code contains special xml chars
        //]]>
        </script>
        <div>
        ...
        </div>
    </ui:composition>
</html>

//
...
单击命令按钮时,将为ajax请求返回此响应:

<?xml version='1.0' encoding='UTF-8'?>
<partial-response id="j_id1"><changes><update id="j_idt4:blockId"><![CDATA[<span id="j_idt4:blockId">
<script type="text/javascript">
//<![CDATA[
    //javascript code contains special xml chars
//]]>
</script>
<div>
test
</div></span>]]></update><update id="j_id1:javax.faces.ViewState:0"><![CDATA[-4479406101101075754:7339996762278955153]]></update><extension id="org.richfaces.extension"><render>j_idt4:blockId</render></extension></changes></partial-response>

//
测试
]]>j_idt4:blockId
从响应中可以看出,顶级cdata在apage.xhtml中包含cdata。因此,返回的xml无效,浏览器无法对其进行分析

有没有办法解决这个问题。作为一种解决方案,脚本可以移动到一个单独的脚本文件中,但是有很多这样的代码是从JSF1.2升级而来的,所以它不是首选


谢谢。

你能用XML实体转义那些特殊的图表吗?@Selaron,是的,我能,但它不适合可读性和ide的js验证。你使用哪种jsf实现?也许这可以澄清一点:Mojarra 2.2.18加上richfaces 4.5.17。我放弃了这个问题,将有问题的脚本移动到单独的js文件中。谢谢你的关注。