2

我的应用程序使用带有 apache 速度的 SpringMVC。现在我要将 Angularjs 控制器添加到 *.vm 文件(速度文件)中。我在访问 Spring 控制器返回的 ModelAndView 对象中设置的对象时发现了一个问题。

有人可以给我一个简单的例子来说明如何做同样的事情吗?

示例: Controller.java

ModelAndView mav = ControllerUtil.createModelView();
String dataSource = Constant.DATA_SOURCE;
HttpSession session = (HttpSession) mav.getModel().get("httpSession");  
**mav.addObject("dataSource", dataSource);**

请举例说明如何在 AngularJS 模块中获取“dataSource”值。

提前致谢,DBKnot 团队

4

1 回答 1

2

我不熟悉速度,但我也试图找到一种方法来完成你似乎想要做的事情。

我目前正在探索(也测试过)这种方法。使用Jackson将您的对象解析为字符串。这可以在控制器上或通过自定义标记在 JSP 中完成。

例子:

    ObjectMapper jsonMapper = new ObjectMapper();
    String result = null;
    try {
        result =  jsonMapper.writeValueAsString(obj);
    } catch (Exception e) {
        // Handle it
    }
    **mav.addObject("dataSource", result);**

在 HTML/JSP/Whatever 上有类似的东西

<div ng-controller="MyCtrl" ng-init="init(${dataSource})">...</div>

并让您的控制器的 init 方法处理其余部分。

笔记

与往常一样,您应该阅读文档,AngularJS 建议应该通过 AJAX 请求初始化模型,而不是从 DOM 中获取(这就是这里发生的情况)。

我很想看到这个的替代品

于 2013-04-06T07:15:59.037 回答