使用thymeleaf创建javascript变量
我需要可视化一些数据,并希望基于这些数据创建一个javascript数组 我想将我自己的名字和数据从java代码注入变量使用thymeleaf创建javascript变量,java,template-engine,thymeleaf,Java,Template Engine,Thymeleaf,我需要可视化一些数据,并希望基于这些数据创建一个javascript数组 我想将我自己的名字和数据从java代码注入变量 /*[+ var [+ [[${data.getDataName}]] = [[${data.getData()}]]; +]*/ 但是,名称和数据显示在括号中。附近有步行街吗?也许你可以推荐更好的html模板引擎,它更适合javascript 现在我的代码中有硬编码的html和javascript,我想去掉它。现在可能已经解决了这个问题,但我还是要
/*[+
var [+ [[${data.getDataName}]] = [[${data.getData()}]];
+]*/
但是,名称和数据显示在括号中。附近有步行街吗?也许你可以推荐更好的html模板引擎,它更适合javascript
现在我的代码中有硬编码的html和javascript,我想去掉它。现在可能已经解决了这个问题,但我还是要试一试 我不确定我是否理解[+语法,但除此之外: 除非您正在编写自己的框架或其他东西,否则您可能不想动态命名变量。这将使其他人更难阅读。此外,显式定义变量名通常不被视为“硬编码”。但是,如果您确实想编写自己的小框架,您可以尝试一些疯狂的方法,如以下所示:
var data = {};
var name = /*[[${data.getDataName()}]]*/ '';
var value = /*[[${data.getData()}]]*/ '';
data[name] = value;
但是,您也可以这样初始化一系列对:
[[['name1',value1'],['name2',value2'],['name3',value3']]
。也许这就是您想要的。最简单的方法可能是在Java中定义它(作为列表
或其他东西。或者,如果您没有并且不想创建一对列表,您可以使用列表
而不是对。为什么要使用来自java的数据创建javascript数组?您可以使用这些数据(来自java)直接在thymeleaf中。因为我需要使用flotJS绘制这些数据。有没有办法直接在java中进行绘制?好的,现在我明白了。我们有类似的要求,但我们通过ajax请求处理。抱歉,编辑:您可以做的一件事是在您发布的内容中调用javascript方法。好的。我在documentatio上找到了一些示例n:var user=/*[[${session.user}]]*/null,我假设这应该将类型解析为null,但这对我不起作用(也不解析为数组[])