Вызов функции 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 + ')'}"