在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,有没有干净的方法呢?
答案 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()函数,该函数通过查询数据库来检索此映射。 使用
将地图转换为Jsonresponse = gsonHelper.toJson(yourMap);
将此json作为响应发送回您的控制器并将其分配给范围中定义的变量,例如fruits。
现在,您可以在标记中使用水果来迭代地图。