Ich benutze Thymeleaf als Template-Engine. Wie übergebe ich eine Variable vom Spring-Modell an die JavaScript-Variable?
Federseite:
@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
model.addAttribute("message", "hello");
return "index";
}
Client-Seite:
<script>
....
var m = ${message}; // not working
alert(m);
...
</script>
javascript
spring
thymeleaf
Matteo
quelle
quelle
/*<![CDATA[*/
Makro vergessen, erhalten Sie das.<script th:inline="javascript">
quelle
defaultanyvalue
nur verwendet wird, wenn die Seite statisch ausgeführt wird, dh außerhalb eines Webcontainers. Wenn es in einem Container ausgeführt wird und die Variablemessage
nicht deklariert wurde, lautet der resultierende Quellcodevar message = null;
th:inline="javascript"
das Skript-Tag hinzuzufügen .Thymeleaf 3 jetzt:
Eine Konstante anzeigen:
Eine Variable anzeigen:
Oder in einem Kommentar, um einen gültigen JavaScript-Code zu erhalten, wenn Sie Ihre Vorlagendatei statisch öffnen (ohne sie auf einem Server auszuführen).
Thymeleaf nennt dies: natürliche JavaScript-Vorlagen
Thymeleaf ignoriert alles, was wir nach dem Kommentar und vor dem Semikolon geschrieben haben.
Weitere Informationen: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
quelle
Laut Dokumentation gibt es verschiedene Möglichkeiten, das Inlining durchzuführen.
Den richtigen Weg müssen Sie je nach Situation wählen.
1) Setzen Sie einfach die Variable vom Server in Javascript:
2) Kombinieren Sie Javascript-Variablen mit serverseitigen Variablen, z. B. müssen Sie einen Link für die Anforderung innerhalb des Javascript erstellen:
Die eine Situation, die ich nicht lösen kann - dann muss ich eine Javascript-Variable innerhalb der Java-Methode übergeben, die in der Vorlage aufgerufen wird (es ist unmöglich, denke ich).
quelle
Stellen Sie sicher, dass Sie bereits ein Blatt auf der Seite haben
quelle
Ich habe gesehen, wie so etwas in freier Wildbahn funktioniert:
quelle