I have a Spring boot application using Thymeleaf. I'm setting a model variable with a String value and want to use it as variable value in javascript.
In Java I do something like:
StringBuffer data = new StringBuffer();
data.append("[ [\"").append(name1).append("\" ], \"").append(name2).append("\"] ] ");
...
model.addAttribute("dataString", data);
My code in HTML looks like:
<script th:inline="javascript">
/*<![CDATA[*/
var dataSet = [[${dataString}]];
/*]]>*/
...
</script>
The result in JavaScript should be:
var dataSet = [ ["Name1"], ["Name2"] ];
But what I'm getting is in the HTML:
var dataSet = "[ [\"Name1\"], [\"Name2\"] ]";
I tried different things in the HTML/JavaScript:
- using only one bracket
[$dataString]
-> results invar dataSet = [${dataString}];
; - using this:
/*[$dataString]*/
-> results invar dataSet = /*[${dataString}]*/;
; - or:
/*[[$dataString]]*/
-> results invar dataSet = "[ [\"Name1\"], [\"Name2\"] ]";
- removing the
CDATA
stuff -> nothing changed
Nothing result in the correct string in JavaScript. How can I achieve the proper String?