【发布时间】:2015-09-03 06:39:56
【问题描述】:
我必须将两个字符串数据从 angularjs 控制器传递到 spring 控制器。除了json还有其他方法吗?我不知道如何在 spring 控制器中接受 json 对象。
controller.js
$scope.cloneRelease = function(release,newReleaseName){
var dataObj = {
oldReleaseName : $scope.release,
newReleaseName : $scope.newReleaseName,
};
console.log('inside clone release'+dataObj);
$http.post('cloneReleaseController/cloneRelease',dataObj).success(function (data) {
});
}
Spring controller
public void cloneRelease(String oldReleaseName ,String newReleaseName, @RequestBody ReleaseDAO releaseDAO){
System.out.println("inside clone controller"+oldReleaseName+" "+newReleaseName);
ArrayList<TaskDAO> tasks;
ArrayList<TaskDAO> task = new ArrayList<TaskDAO>();
if(mongoService.createReleaseService(releaseDAO) != null){
String releaseIdOfNewRelease = releaseDAO.getId();
String releaseNameOfNewRelease = releaseDAO.getName();
tasks = mongoService.fetchTaskForReleaseService(oldReleaseName);
for(TaskDAO fetchSingleTask : tasks){
fetchSingleTask.getRelease().setId(releaseIdOfNewRelease);
fetchSingleTask.getRelease().setName(releaseIdOfNewRelease);
}
mongoService.addTask(tasks, null);
}
}
【问题讨论】:
-
看passing JSON data to a Spring MVC controller。您的角度代码看起来不错,但您的弹簧控制器需要看起来像这样:
public void cloneRelease(@RequestBody SomePojo dataObj)或者如果您懒得定义 POJO,那么public void cloneRelease(@RequestBody Map<String, Object> dataObj)
标签: angularjs spring-mvc