Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Thymeleaf and inline scripts SAXParseException

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

like image 608
Alexandru Severin Avatar asked Apr 10 '14 10:04

Alexandru Severin


1 Answers

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

like image 180
Alexandru Severin Avatar answered Oct 29 '22 21:10

Alexandru Severin