Вызов функции Javascript с помощью Thymeleaf
Мне нужно вызвать функцию javascript на шаблоне тимелеафа, примерно так:
Случай 1:
<select th:onclick="${'function1('a')'}">
Но в этом случае тимелеаф не работает. Некоторые исследования назад (включая stackoverflow) я получаю следующие "решения":
Случай 2:
<select th:onclick="${'function1(''a'')'}">
Случай 3:
<select th:onclick="${'function1(\'a\')'}">
Случай 4:
<select th:onclick="${'function1(\''+'a'+'\')'}">
Но во всех случаях я получаю ту же ошибку: "... Исключение, оценивающее выражение SpringEL..."
Моя проблема связана с вызовами javascript, мне нужно поместить некоторые параметры ${var} для вызова функции js. Как я могу это исправить?
Спасибо
Ответы
Ответ 1
Если вам не нужны динамические вары в вызове функции JS, вот как это сделать:
th:onclick="'alert(\'a\');'"
Это просто ускользает от одиночных кавычек и не требует SpringEL (конечно, вы можете обойтись без атрибута thymeleaf в этом случае и просто использовать обычный onclick).
Вставить в него vars:
th:onclick="'alert(\'' + ${myVar} + '\');'"
Используется функция предупреждения, позволяющая мне попробовать ее и доказать, что она работает. Надеюсь, что это поможет.
Ответ 2
Вам нужно вызвать функцию javascript, как указано ниже.
th:onclick="'javascript:function1(\''+ ${a} +'\');'"
Я думаю, это может помочь вам.
Ответ 3
Попробуйте это.
th:onclick="${'javascript:functionXXX(' + obj.id + ')'}"