Question

I got a page which uses thymeleaf template, and I'm getting the following error on page load when using inline scripts:

org.xml.sax.SAXParseException; lineNumber: 270; columnNumber: 85; The content of elements must consist of well-formed character data or markup.

Code at line 270

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

I have tried replacing "<", ">" symbols from document.write with &lt; &gt;, the exception doesn't occur anymore but the script is not loaded anymore

Was it helpful?

Solution

You need to add CDATA tags for the script like this:

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

The tags are telling thymeleaf's xml parser that the code between should not be interpreted as XML markup.

This is no longer necessary since Thymeleaf 3.0

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top