【发布时间】:2015-12-10 12:57:42
【问题描述】:
我对 AngularJS 还是很陌生,我想弄清楚如何从我的 SPRING 控制器调用方法,或者有其他方法可以实现吗?
我的 app.js 看起来像这样:
// Define a module
var myApp = angular.module('createWorkshopApp', []);
// Create controller
myApp.controller('mainController',
function ($scope, $http) {
$scope.workshop = {};
$scope.createWorkshop = function () {
if ($scope.workshopName == "" || $scope.workshopDescription == "") {
alert("Insufficient Data! Please provide values for workshop name and description");
}
else {
$http({
method: 'POST',
url: '/create',
data: $scope.workshop
}).
success(function (data, status, headers, config) {
// Into database.. ??
alert('Workshop saved!');
}).
error(function (data, status, headers, config) {
if (status == 400) {
alert('404');
} else {
alert('Unexpected server error.');
}
});
}
};
});
我的 WorkshopController.java 看起来像这样:
> /**
> *
> * @param workshop
> * @param result
> * @return view of the workshop
> */
> @RequestMapping(value = "/workshop/create", method = RequestMethod.POST, headers = "Accept=application/json")
> public String addWorkshop(@Valid Workshop workshop, BindingResult result) throws ParseException {
> if (result.hasErrors()) {
> return BASE_URL + "create";
> } else {
> this.workshopService.addWorkshop(workshop);;
> return "redirect:" + BASE_URL + "view/" + workshop.getId();
> }
> }
我还有一个名为 workShopService.java 的 java 文件,看起来像这样
@Service
@Transactional
public class WorkshopService {
@Autowired
private WorkshopDAO workshopDAO;
public void addWorkshop(Workshop workshop) {
workshopDAO.addWorkshop(workshop);
}
public Workshop getWorkshop(int id) {
return workshopDAO.getWorkshop(id);
}
public List<Workshop> getWorkshops() {
return workshopDAO.getWorkshops();
}
}
我从 SPRING(MVC) 和 HIBERNATE 开始,现在我对控制器的作用感到困惑,因为使用 AngularJS 你已经创建了一个控制器。
【问题讨论】:
-
角度控制器和弹簧控制器是不同的。角度控制器负责在前端内部进行路由。 Spring 控制器有责任在您需要时调用持久层您可以使用 SpringREST intead of Spring MVC 并创建一个 RESTFUL API。
标签: java angularjs spring hibernate spring-mvc