我正在尝试将 AngularJS 与 Spring MVC 集成;但我无法将参数作为 RequestBody 发布到弹簧控制器。有人可以帮助我实现同样的目标吗?以下是我的程序的简要流程。
完成数据输入后TodoNewController被执行。从这里我调用我在services.js中定义的用户定义方法“ create ” 。根据之后的流程,它应该调用 TodoController.java的create方法以及输入参数;但它没有发生。有人可以让我知道代码有什么问题吗?下面是相同的代码。
控制器.js
function TodoNewController($scope, $location, Todo) {
$scope.submit = function () {
Todo.create($scope.todo, function (todo) {
$location.path('/');
});
};
$scope.gotoTodoListPage = function () {
$location.path("/")
};
}
服务.js
angular.module('todoService', ['ngResource']).
factory('Todo', function ($resource) {
return $resource('rest/todo/:id', {}, {
'create': {method:'PUT'}
});
});
TodoController.java
@Controller
public class TodoController {
private static final AtomicLong todoIdGenerator = new AtomicLong(0);
private static final ConcurrentSkipListMap<Long, Todo> todoRepository = new ConcurrentSkipListMap<Long, Todo>();
@RequestMapping(value = "/todo", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void create(@RequestBody Todo todo) {
long id = todoIdGenerator.incrementAndGet();
todo.setId(id);
todoRepository.put(id, todo);
}
}