最近一直在使用spring boot,所以自然而然的使用了thymeleaf,但是我想说习惯了jsp之后使用thymeleaf真实觉得不顺手,在使用thymeleaf中也遇到了一些问题,在这里记录一下,应该还是挺有用的,呵呵……
-
问题一:org.xml.sax.SAXParseException: 元素类型 “input” 必须由匹配的结束标记 “” 终止。
这是最简单的一个问题,用过的,都知道,一般input遇到这种问题比较多。解决方法很简单,加上’/’就行了。
-
问题二:org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 ‘&’ 后面。
在thymeleaf的js中使用&,<,>等符号时会产生这种问题,即使转义也不行,解决方法:将你的js代码包裹在
<![CDATA[ ]]>
之中即可,like this:<script>//<![CDATA[ js代码 //]]></script>
,详情参考:http://blog.csdn.net/lijiaojiao123123/article/details/44954667 -
问题三:如果你需要在js代码中使用thymeleaf的表达式获取你后端传的值
解决方法:
<script type="text/javascript" th:inline="JavaScript"></script>
,加上 th:inline=”JavaScript”标签即可,在获取值时这样写,var user = [[${user}]],注意无需加引号,而这样获取到的数据已经是一个json对象了,很方便.。 -
问题四:你很可能在写这样的代码:
$("#select").append("<option value='"+value+"'>"+text+"</option>");
时报这样的错:SyntaxError: missing ) after argument list解决方法:不要用”“包裹”,而要使用”包裹”“即可
-
问题五:生成动态的class,而且还是多个,当时因为用到了treegrid树形插件,所以需要动态的生成class,但是这个让我当时摸索好一会儿
解决方法:注意不要这样写:
<tr th:class="'treegrid-'+${item.sid} 'treegrid-parent-'+${item.pSid}">
,要这样写:<tr th:class="'treegrid-'+${item.sid}" th:classappend="'treegrid-parent-'+${item.pSid}">
暂时只遇到以上这些问题,未完待续……
原文转自:http://blog.csdn.net/xyc_csdn/article/details/72801716