我正在尝试在javascript中使用Spring变量:
Map<String, List<String>> states;
我在这里找到了一些信息
所以我尝试了:
<script th:inline="javascript">
/*<![CDATA[*/
var xxx = ${states};
console.log(xxx);
/*]]>*/
</script>
在浏览器的“源”选项卡中,我有类似以下内容:
var xxx = {STATE1=[a, b, c, d]};
console.log(xxx);
错误是:Uncaught SyntaxError: Invalid shorthand property initializer
。
我也尝试过:var xxx = /*[[${states}]]*/ 'foo';
如果我打印console.log(xxx)
,我就知道了'foo'
。
我用您的评论解决了我的问题:
1)缺少单引号:
<script th:inline="javascript">
/*<![CDATA[*/
var xxx = '${states}';
console.log(xxx);
/*]]>*/
</script>
2)必须对对象进行解析,以便:
var hashmap = $.parseJSON(xxx);
3)在我需要序列化对象之前(这不是ajax调用,因此我需要手动序列化它):
Map<String, List<String>> states...
model.addAttribute("states", new ObjectMapper().writeValueAsString(states));
现在,我可以读取对象了:
var myList = hashmap['STATE1'];
console.log(myList )
将打印[a, b, c, d]
,我可以循环:
for(i in myList ){
console.log(myList[i]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句