Spring + Thymeleaf: получить модель как JSON в шаблоне для обработки JavaScript - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу использовать модель для установки переменных в моем коде JavaScript. Я видел такие вопросы, как this , но они работают только с динамическим встроенным JavaScript . У меня есть код JavaScript в статическом файле (/static/js/myscript.js), но я все еще хочу использовать модель в нем.

Я бы хотел написать код JavaScript, который выглядит следующим образом:

removePerson(model.name, model.sex);

вместо этого (для встроенного JavaScript):

removePerson([[${name}]], [[${sex}]]);

Тогда мой заголовок на каждой странице будет выглядеть так:

<!-- Pass the model to the static JavaScript code -->
<script data-th-inline="javascript">var model = [[#model.toJSON()]]</script>
<script data-th-src="@{/static/js/myscript.js}"></script>

но, конечно, #model.toJSON() не существует. Есть ли встроенная функция для получения всей Модели и преобразования ее в JSON, чтобы я мог получить к ней доступ из статического кода JavaScript? Сгенерированный код должен выглядеть следующим образом:

<!-- Pass the model to the static JavaScript code -->
<script data-th-inline="javascript">var model = {"name": "peter", "sex": "m"}</script>
<script data-th-src="@{/static/js/myscript.js}"></script>
<Ч />

Контроллер

@GetMapping("/test")
public String testGet(Model model)
{
    model.addAttribute("name", "peter");
    model.addAttribute("sex", "m");
    return "test";
}
...