2016-12-27 4 views
1

Ich bin ein Projekt von JSP zu Thymeleaf migrieren.Thymoleaf forEach Schleife in JavaScript

In einigen JSPs habe ich fancy stuff wie folgt aus:

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

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

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

Wie konnte ich das gleiche tun mit Thymeleaf?

Antwort

2

Dies ist die Arbeitslösung mit Thymeleaf 3.0.2:

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

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

/*]]>*/ 
</script> 

Warum es hier erklärt funktioniert, ist: [MAJOR FEAT] New syntax for textual template modes #395

0

Sie können das Attribut schreiben zu

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

Dann können Sie es mit JS Zugriff als:

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

Thymeleaf Code auf Serverseite und JS-Code ausgeführt wird auf der Client-Seite. Ich frage mich, wie Jsp dieses Personal ohne irgendwelche Tricks hadle.

+0

Vielen Dank für Ihre Andeutung, obwohl ich nicht sicher bin, dass es, da ich arbeiten, möchte JavaScript und nicht HTML generieren. Ich werde es heute Abend versuchen. Über Ihre Bemerkung zu JSPs: Sie haben die Erklärung selbst gegeben. Es funktioniert, weil die JSP-Engine die Seite auf dem Server verarbeitet und das JavaScript innerhalb der Seite generiert, das vom Browser gesendet wird. Die Seite in Aktion ist hier https://www.tesyglodt.lu/kaart und der Quellcode ist hier https://github.com/yglodt/tesyglodt.lu/blob/master/src/main/webapp/WEB-INF/ jsp/map.jsp – yglodt