将地图从servlet传递给Angularjs

时间:2015-06-30 00:13:38

标签: java angularjs servlets

在servlet中我得到了类似的东西:

Map<String, String> myFruits = giveMeSomeFruits();
request.serAttribute("myFruits", myFruits);

在.js我得到了:

<label ng-repeat='(key, value) in myFruits'>
    <input type='checkbox' value='{{value}}' ng-click='eat(value)'/> {{key}}
</lable>

现在我需要将地图myFruits从servlet传递给angularJs,有没有干净的方法呢?

2 个答案:

答案 0 :(得分:0)

这可能有效。

1.你是否从角度调用了对servlet的ajax 2.转换地图     使用JSONObject在Java中使用Json并发送响应     servlet作为JSON。

return new JSONObject(myFruits);

 $.ajax(
     url : url,   // Controller URL
     success: function(resultJSON){
          //Assign resultJSON to myFruits variable
          $scope.myFruits = resultJSON;
      }});

答案 1 :(得分:0)

在你的控制器中,定义一个名为getMap的函数。使用方法&#39; GET&#39;来使用您的网址调用servlet。

$scope.getMap = function () {
    $http({method: 'GET', url: 'your url'}).
        success(function (data, status, headers, config) {
            console.log(data);
            $scope.myFruits = {data: data};
        }).
        error(function (data, status, headers, config) {
            console.log("error");
        });
};

现在您必须覆盖servlet中的doGet()函数,该函数通过查询数据库来检索此映射。 使用

将地图转换为Json
response = gsonHelper.toJson(yourMap);

将此json作为响应发送回您的控制器并将其分配给范围中定义的变量,例如fruits。

现在,您可以在标记中使用水果来迭代地图。