问题
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 <
>
, the exception doesn't occur anymore but the script is not loaded anymore
回答1:
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
来源:https://stackoverflow.com/questions/22985898/thymeleaf-and-inline-scripts-saxparseexception