Nik*_*Nik 5 javascript java spring spring-mvc
我正在尝试在javascript中使用Spring变量:
Map<String, List<String>> states;
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一些信息
所以我试过了:
<script th:inline="javascript">
/*<![CDATA[*/
var xxx = ${states};
console.log(xxx);
/*]]>*/
</script>
Run Code Online (Sandbox Code Playgroud)
在我的浏览器的源选项卡中,我有类似的东西:
var xxx = {STATE1=[a, b, c, d]};
console.log(xxx);
Run Code Online (Sandbox Code Playgroud)
而错误是: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>
Run Code Online (Sandbox Code Playgroud)
2)对象必须被解析为:
var hashmap = $.parseJSON(xxx);
Run Code Online (Sandbox Code Playgroud)
3)在我需要序列化我的对象之前(这不是ajax调用,所以我需要手动序列化它):
Map<String, List<String>> states...
model.addAttribute("states", new ObjectMapper().writeValueAsString(states));
Run Code Online (Sandbox Code Playgroud)
所以现在我可以读取我的对象:
var myList = hashmap['STATE1'];
console.log(myList )
Run Code Online (Sandbox Code Playgroud)
将打印[a, b, c, d],我可以循环:
for(i in myList ){
console.log(myList[i]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |