thymeleaf模板。。。包含js。。。使用了if(a && b) 然后 && 不能通过模板引擎的解析。。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thymeleaf模板。。。包含js。。。使用了if(a && b) 然后 && 不能通过模板引擎的解析。。。相关的知识,希望对你有一定的参考价值。
最近使用了新的html模板thymeleaf。。在模板里使用js语法时遇到问题, &&不能正确的被解析,使用if(a && b) 可以通过模板解析,但是浏览器上不能解析成功。。财富值不多,麻烦大家帮帮忙
/*<![CDATA[*/if(a && b)
//...
/*]]>*/
首尾增加这样的注释一样的声明,由于thymeleaf是采用xml解析的方式进行替换的,所以javascript中&这样的xml实体转义字符会被识别为转义,所以会出sax解析错误
但是笨方法还是有的:把and条件拆成两个if语句追问
浏览器是不能解析其实就是还是显示&这个转义后的字符,而不是& ..不过我已经解决这个问题了。。。
参考技术C &&改成and就可以了如何结合 AngularJS 和 Thymeleaf 模板
【中文标题】如何结合 AngularJS 和 Thymeleaf 模板【英文标题】:How to combine AngularJS and Thymeleaf templates 【发布时间】:2017-03-28 20:57:54 【问题描述】:我正在将当前使用 Thymeleaf 的网页转换为使用 AngularJS。
我想转换包含 Thymeleaf 的后续块
<form th:action="@?deleteLog" th:object="$log" method="post" class="in-line">
<input type="hidden" th:value="$log.vid_id" name="vid_id" />
<input type="hidden" th:value="$log.id" name="id" />
<button type="submit" class="btn btn-danger">Delete</button>
</form>
这些th:value
变量被传递给我的控制器类中的@PostMapping
方法,然后使用这些变量从我的数据库中删除一个条目。
如何使用 AngularJS 实现这一点?采取与我相同的方法
<form th:action="@?deleteLog" method="post" class="in-line">
<input type="hidden" th:value="x.vid_id" name="vid_id" />
<input type="hidden" th:value="x.id" name="id" />
<input type="button" value="Remove" class="btn btn-danger" ng-click="removeRow(tableList.id)" />
</form>
removeRow()
函数成功地从 UI 中的表中删除了行,我只需要将 x.vid_id
和 x.id
值发送到我的控制器类中的方法。
我显然没有使用正确的语法,因为我在尝试使用 Angular 时遇到了 th:value="x.id"
thymeleaf 变量的解析错误。我也试过th:value="$x.id"'
和th:value="$x.id"
。
我无法在网上找到有关传递 Angular 变量的任何信息。这甚至可能吗?
【问题讨论】:
【参考方案1】:您不应将 AngularJS(用于客户端 HTML 模板的 SPA 框架)与 Thymeleaf(用于服务器端 HTML 模板的库)混合使用。您应该选择在服务器或客户端上进行模板化并坚持下去。
将这两者结合起来根本没有意义。
【讨论】:
以上是关于thymeleaf模板。。。包含js。。。使用了if(a && b) 然后 && 不能通过模板引擎的解析。。。的主要内容,如果未能解决你的问题,请参考以下文章
Thymeleaf 模板 - 有没有办法装饰模板而不是包含模板片段?
Spring Boot2 系列教程 | 整合 thymeleaf