J'ai besoin d'appeler une fonction javascript sur le modèle thymeleaf, quelque chose comme ceci:
Cas 1:
<select th:onclick="${'function1('a')'}">
Mais dans ce cas la thymeleaf ne fonctionne pas .. il y a quelques recherches (y compris stackoverflow) j'obtiens les "solutions" suivantes:
Cas 2:
<select th:onclick="${'function1(''a'')'}">
Cas 3:
<select th:onclick="${'function1(\'a\')'}">
Cas 4:
<select th:onclick="${'function1(\''+'a'+'\')'}">
Mais dans tous les cas, je reçois la même erreur: "... Exception lors de l'évaluation de l'expression SpringEL ..."
Mon problème concerne les appels javascript, j'ai besoin de mettre quelques paramètres $ {var} pour l'appel en fonction js. Comment je peux résoudre ce problème?
Merci
Si vous n'avez pas besoin de vars dynamiques dans l'appel de fonction JS, voici comment procéder:
th:onclick="'alert(\'a\');'"
Cela échappe simplement aux guillemets simples et ne nécessite aucun SpringEL (vous pouvez bien entendu vous passer de l'attribut thymeleaf dans ce cas et utiliser simplement plain onclick).
Pour y insérer des vars:
th:onclick="'alert(\'' + ${myVar} + '\');'"
Utilisé la fonction d'alerte pour me permettre de l'essayer et de prouver que cela fonctionne. J'espère que cela pourra aider.
Vous devez appeler la fonction javascript mentionnée ci-dessous.
th:onclick="'javascript:function1(\''+ ${a} +'\');'"
Je pense que cela pourrait vous aider.
Essaye ça.
th:onclick="${'javascript:functionXXX(' + obj.id + ')'}"
Envoi de deux valeurs dans JS:
function openGate(IP,Port) {
// Some operations with parameters IP and Port
}
<button id="open" type="button" th:onclick="'openGate(\'' +${gate.gateIp} +'\',\''+${gate.gatePort}+'\')'" class="btn btn-warning">Open the gate</button>
Dans thymeleaf onclick, nous utilisons des quotas pour les paramètres. Ainsi, la page sourse semble
<button id="open" type="button" onclick="openGate('192.168.10.10','9938')" class="btn btn-warning">Open gate</button>