thymeleaf时遇到的⼀些问题
最近⼀直在使⽤spring boot,所以⾃然⽽然的使⽤了thymeleaf,但是我想说习惯了jsp之后使⽤thymeleaf真实觉得不顺⼿,在使⽤thymeleaf中也遇到了⼀些问题,在这⾥记录⼀下,应该还是挺有⽤的,呵呵……
问题⼀:l.sax.SAXParseException: 元素类型 “input” 必须由匹配的结束标记 “” 终⽌。
这是最简单的⼀个问题,⽤过的,都知道,⼀般input遇到这种问题⽐较多。解决⽅法很简单,加上’/’就⾏了。
问题⼆:l.sax.SAXParseException: 在实体引⽤中, 实体名称必须紧跟在 ‘&’ 后⾯。
在thymeleaf的js中使⽤&,<,>等符号时会产⽣这种问题,即使转义也不⾏,解决⽅法:将你的js代码包裹在<![CDATA[ ]]>之中即可,like this: <script>//<![CDATA[ js代码 //]]></script>,
问题三:如果你需要在js代码中使⽤thymeleaf的表达式获取你后端传的值
⽐如后台通过modelAndView.addObject("dataList", upwardArrayDatas)将数据传给前端,前端⽤var data = '[[${upwardArrayDatas}]]';接收数据,数据会⾃带转义"符,"代表引号的意思,如下:
'[{"name":";上海唯猎创业投资中⼼(有限合伙)","hasHumanholding":false,"amount":"100","ratio ":"55%","children":[]}]'
thymeleaf用法
解决⽅法:<script type="text/javascript" th:inline="JavaScript"></script>,加上 th:inline=”JavaScript”标签即可,在获取值时这样写,var user = [[${user}]],注意⽆需加引号,⽽这样获取到的数据已经是⼀个json对象了,很⽅便.。
<script th:inline="javascript">
//页⾯显⽰异常不转义输出
//<![CDATA[
var data =[[${upwardArrayDatas}]];
console.log(data);//这边打印的数据就不会带转义符"了
//source = JSON.parse(source);
//console.log(source);
/
/]]>
</script>
**问题四:你很可能在写这样的代码:$("#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}">

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。