【发布时间】:2017-02-27 17:59:43
【问题描述】:
我想知道是否可以通过 Handlebars 辅助方法将在 Spring MVC 应用程序的控制器中创建的 Java 对象传递给客户端。
例如,如果我在控制器中创建一个地图并将其传递给我的视图:
public ModelAndView myController(HttpServletRequest req) {
ModelAndView mav = new ModelAndView("/views/myview.jsp");
Map<Long, String> map = new HashMap<>();
map.put(1L, "a");
map.put(2L, "b");
mav.addObject("MyMap", map);
return mav;
}
...我的观点是这样的:
<html>
<head>
</head>
<body>
<!-- I want to pass my map to this helper function -->
<div id="mymap">{{buildStringFromMap "MyMap"}}</div>
</body>
</html>
然后在 Javascript 中使用实际的 Handlebars 助手来处理该地图,如下所示:
Handlebars.registerHelper('buildStringFromMap', function (myMap) {
var a = myMap[1L]; // a == "a" here
// do whatever with the map
});
显然这不起作用,因为我实际上并没有传递我的 Map 对象,而是一个字符串“MyMap”。有没有办法传入实际的 Map 对象?
【问题讨论】:
-
在视图中将您的地图对象转换为 javascript 地图,然后将其传递给车把助手。
标签: javascript java spring-mvc templates handlebars.js