java - Right work whit path at RESTful api with spring mvc, angular and hibernate -
i have designprojects.jsp want runned after logincontroller , want path include current month , year , looks : ..../designprojects/2016/08/ want use path angularjs crud . how make right? should write rest_service_uri
in angular_service file? may rest_service_uri = '........./designprojects/{year}/{month}/';
? guys.....
my logincontroller :
@controller public class logincontroller { @autowired private loginservice loginservice; @requestmapping(value = "/", method = requestmethod.get) public string index() { return "redirect:/login"; } @requestmapping(value = {"/login"}, method = requestmethod.get) public modelandview displaylogin(user user) { modelandview model = new modelandview("/login"); model.addobject("user", user); return model; } @requestmapping(value = "/login", method = requestmethod.post) public modelandview executelogin(httpservletrequest request, @modelattribute("user") user user) { modelandview modelandview = null; if (user != null && user.getusername() != null & user.getpassword() != null) { employee employee = loginservice.login(user.getusername(), user.getpassword()); if (employee != null) { request.getsession().setattribute("employee_id", employee.getid()); request.getsession().setattribute("employee_name", employee.getfirstname()); request.getsession().setattribute("employee_role", (employee.getrole()).getrole()); date date= new date(); calendar cal = calendar.getinstance(); cal.settime(date); int month = cal.get(calendar.month)+1; int year = cal.get(calendar.year); modelandview = new modelandview("redirect:/designprojects/" + year + "/" + month); return modelandview; } } modelandview = new modelandview("/login"); request.setattribute("errormessage", "invalid username or password"); return modelandview; }
my designprojectcontroller :
@controller public class designprojectsrestcontroller { @autowired designprojectservice designprojectservice; @requestmapping(value = "/designprojects/{year}/{month}", method = requestmethod.get) public responseentity<list<designproject>> listalldesignprojects(@pathvariable(value="year") int year, @pathvariable(value="month") int month) { list<designproject> listofprojects = designprojectservice.getalldesignprojects(year,month); return new responseentity<list<designproject>>(listofprojects, httpstatus.ok); } @requestmapping(value = "/designprojects/{year}/{month}/{id}", method = requestmethod.get) public responseentity<designproject> getdesignproject(@pathvariable("id") int id) { designproject designproject = designprojectservice.getdesignprojectsbyid(id); return new responseentity<designproject>(designproject, httpstatus.ok); } @requestmapping(value = "/designprojects/{year}/{month}", method = requestmethod.post) public responseentity<void> createdesignproject(@requestbody designproject designproject) { designprojectservice.adddesignproject(designproject); return new responseentity<void>(httpstatus.created); } @requestmapping(value = "/designprojects/{year}/{month}", method = requestmethod.put) public responseentity<designproject> updatedesignproject(@requestbody designproject designproject) { designprojectservice.updatedesignprojects(designproject); return new responseentity<designproject>(designproject, httpstatus.ok); } @requestmapping(value = "/designprojects/{year}/{month}/{id}", method = requestmethod.delete) public responseentity<void> deletedesignproject(@pathvariable("id") int id) { designprojectservice.deletedesignproject(designprojectservice.getdesignprojectsbyid(id)); return new responseentity<void>(httpstatus.no_content); } }
first, check index.html base context href "/"
*<head> <title ng-bind="title">angularjs</title> <meta charset="utf-8"> <base href="/" /> </head>*
then create file service connection rest api
(function () { 'use strict'; angular .module('app.core') .factory('coursessrevice', coursessrevice); coursessrevice.$inject = ['$resource']; /* @nginject */ function coursessrevice($resource) { console.log('resource invoke'); return $resource('/api/courses/:id', {id: '@id'}, {create: {method: 'post'}, save: {method: 'put'}}); } })();
and inject service controller, this
(function () { 'use strict'; angular .module('app.courses') .controller('coursesctrl', coursesctrl); coursesctrl.$inject = ['$scope', '$location', '$filter', 'coursessrevice']; function coursesctrl($scope, $location, $filter, coursessrevice) { var vm = this; vm.courses = []; vm.unfiltredcourses = []; vm.addcourse = addcourse; vm.search = search; vm.querystring = ''; activate(); function activate() { listcourses(); vm.unfiltredcourses = angular.copy(vm.courses); } function listcourses() { vm.courses = coursessrevice.query(); vm.courses.$promise.then(function (result) { vm.courses = angular.copy(result); vm.unfiltredcourses = angular.copy(vm.courses); }); } function addcourse() { console.log('add: '); $location.path('/courses/new'); } function search() { if (!vm.querystring == '') { vm.courses = angular.copy(vm.unfiltredcourses); vm.courses = $filter('coursesearchfilter')(vm.querystring, vm.courses); } } } })();
check example on github
Comments
Post a Comment