2016-12-27 28 views
1

私は、プロジェクトをJSPからThymeleafに移行しています。私はThymeleafと同じことを行うことができますどのようにThymeleaf for JavaScriptの各ループ

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

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

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

:いくつかのJSPで

は、私はこのような派手なものをやりましたか?

答えて

2

これはThymeleaf 3.0.2で実用的なソリューションです:

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

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

/*]]>*/ 
</script> 

それが動作する理由はここに説明されている:あなたのヒントの[MAJOR FEAT] New syntax for textual template modes #395

0

あなたは

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

に属性を書き出すことができます次に、あなたのようにJSでそれにアクセスすることができます。

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

Thymeleafコードは、サーバー側とJSコードで実行されていますクライアント側。私はjspがどんなトリックもなしにこのスタッフをどのようにしているのだろうと思っています。

+0

おかげで、私はそれが動作することを確認していないものの、I以来、 htmlではなくJavaScriptを生成したい私は今晩お試しになります。 JSPに関するあなたの発言について:あなたは自分で説明をしました。これは、JSPエンジンがサーバー上のページを処理し、ブラウザが送信するページ内にJavaScriptを生成するために機能します。実際のページはhttps://www.tessyglodt.lu/kaart、ソースコードはhttps://github.com/yglodt/tessyglodt.lu/blob/master/src/main/webapp/WEB-INF/です。 jsp/map.jsp – yglodt