Я использую Thymeleaf в качестве механизма шаблонов. Как передать переменную из модели Spring в переменную JavaScript?
Сторона пружины:
@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
model.addAttribute("message", "hello");
return "index";
}
Сторона клиента:
<script>
....
var m = ${message}; // not working
alert(m);
...
</script>
javascript
spring
thymeleaf
Matteo
источник
источник
/*<![CDATA[*/
макрос, вы его получите.<script th:inline="javascript">
источник
defaultanyvalue
будет использоваться только при статическом запуске страницы, то есть вне веб-контейнера. Если запустить внутри контейнера и переменнаяmessage
не была объявлена, получится исходный кодvar message = null;
th:inline="javascript"
в тег скрипта.Тимелеаф 3 сейчас:
Отобразить константу:
Отобразить переменную:
Или в комментарии, чтобы иметь допустимый код JavaScript, когда вы открываете файл шаблона статическим способом (без его выполнения на сервере).
Thymeleaf называет это: естественные шаблоны JavaScript.
Thymeleaf проигнорирует все, что мы написали после комментария и до точки с запятой.
Дополнительная информация: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining
источник
Согласно документации, есть несколько способов встраивания.
Правильный путь нужно выбирать исходя из ситуации.
1) Просто поместите переменную с сервера в javascript:
2) Объедините переменные javascript с переменными на стороне сервера, например, вам нужно создать ссылку для запроса внутри javascript:
Единственная ситуация, которую я не могу решить - тогда мне нужно передать переменную javascript внутри метода Java, вызывающего внутри шаблона (я думаю, это невозможно).
источник
УБЕДИТЕСЬ, что у вас уже есть тимлист на странице
источник
Я видел такие вещи в дикой природе:
источник
Если вам нужно отобразить вашу переменную без экранирования, используйте этот формат:
Обратите внимание на
[(
скобки, в которые заключена переменная.источник