【问题标题】:Thymeleaf and inline scripts SAXParseExceptionThymeleaf 和内联脚本 SAXParseException
【发布时间】:2014-04-10 10:49:22
【问题描述】:

我有一个使用 thymeleaf 模板的页面,并且在使用内联脚本时页面加载时出现以下错误:

org.xml.sax.SAXParseException;行号:270;列号:85;这 元素的内容必须由格式良好的字符数据或 标记。

第 270 行的代码

<script type="text/javascript" >
    window.jQuery || document.write("<script src='assets/js/jquery-2.0.3.min.js'>"+"<"+"/script>");
</script>

我尝试用&amp;lt;&amp;gt; 替换document.write 中的“”符号,该异常不再发生但脚本不再加载

【问题讨论】:

    标签: javascript thymeleaf cdata


    【解决方案1】:

    您需要像这样为脚本添加 CDATA 标记:

    <script type="text/javascript">
        //<![CDATA[
         window.jQuery || document.write("<script src='assets/js/jquery-2.0.3.min.js'>"+"<"+"/script>");
        //]]>
    </script>
    

    标签告诉 thymeleaf 的 xml 解析器之间的代码不应被解释为 XML 标记。

    自 Thymeleaf 3.0 起不再需要此功能

    【讨论】:

    • 欲了解更多信息,[Thymeleaf 模板引擎解析调整] (anwaarlabs.wordpress.com/2017/02/19/…) 会有所帮助。
    • 它有效。花了很多时间才弄清楚。谢谢。
    • 是的,这适用于 1.5.2!此问题已在 2.0.0.BUILD-SNAPSHOT 中解决。希望他们尽快发布 2.0。
    • 作为一个更新,Thymeleaf 3.x 使用 AttoParser 并且不再需要 CDATA,只要您不想针对 xml 验证您的标记。
    猜你喜欢
    • 1970-01-01
    • 2017-09-15
    • 2018-06-11
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2018-07-30
    相关资源
    最近更新 更多