JSF facelet 页面没有带有"&"字符的 JavaScript 字符串



在JSF小页面(.xhtml)中,我有以下javascript代码

<script type="text/javascript">
        function navigateToDetail() {
            var id = document.getElementById("idElemento").value;
            alert(id);
            var isPratica = document.getElementById("isPratica").value;
            alert(isPratica);
            var box = "#{boxCtrl.idBox}";
            alert(box);             
            if (isPratica==true)
                window.location = "DettaglioRichiesta.xhtml?id=" + id + "&box=" + box;
            else
                window.location = "../Richieste/DettaglioRichiesta.xhtml?id=" + id + "&box=" + box;
        }
    </script>

它不起作用,因为jfs引擎认为"&box"是相对于绑定的,它说:

Error Parsing /Box/ListaRichieste.xhtml: Error Traced[line: 20] The reference to entity "box" must end with the ';' delimiter

我能避免这种行为吗?

Facelets是一种基于XML的视图技术。&是XML特殊字符。它被解释为像&nbsp;&#160;等XML实体的开始。因此,它正在寻找结束字符;,但它没有找到,所以它抛出这个错误。

要在XML文档中表示&,需要使用&amp;而不是&

window.location = "DettaglioRichiesta.xhtml?id=" + id + "&amp;box=" + box;

你也可以把JS代码放在它自己的.js文件中,你可以通过<script src>包含它,这样你就不需要在JS代码中摆弄XML特殊字符。

<script type="text/javascript" src="your.js"></script>

相关内容

  • 没有找到相关文章

最新更新