JavaScript 中的 Thymeleaf forEach 循环

Thymeleaf forEach loop in JavaScript

我正在将项目从 JSP 迁移到 Thymeleaf。

在一些 JSP 中,我做了像这样的奇特的东西:

<script type="text/javascript">
    //<c:forEach items="${pages}" var="page">

    ...
    var l = new google.maps.LatLng("${page.lat}", "${page.long}");
    ...

    //</c:forEach>
</script>

我怎样才能对 Thymeleaf 做同样的事情?

您可以将属性写出到

<span id="myvar" th:text="${attributeName}"></span>

然后您可以使用 JS 访问它:

document.getElementById("myvar")jquery $('#myvar').text()

Thymeleaf 代码在服务器端是 运行,在客户端是 JS 代码。我想知道 jsp 是如何不费吹灰之力地应付这名员工的。

这是 Thymeleaf 3.0.2 的工作解决方案:

<script th:inline="javascript">
/*<![CDATA[*/

    /*[# th:each="page : ${pages}"]*/
        ...
        var l = new google.maps.LatLng(/*[[${page.lat}]]*/, /*[[${page.long}]]*/);
        ...
    /*[/]*/

/*]]>*/
</script>

这里解释了为什么以及如何工作:[主要成就] 文本模板模式的新语法 #395