2016-08-23 4 views
0

원하는 designprojects.jsp가 LoginController 다음에 runned 될 것이고 현재 경로에 현재 월 및 연도가 포함되며 다음과 같이 표시됩니다. : ..../designprojects/2016/08/ angularJS CRUD와 함께이 경로를 사용하고 싶습니다. 그것을 올바르게 만드는 방법? angular_service 파일에 REST_SERVICE_URI으로 무엇을 써야합니까? REST_SERVICE_URI = '........./designprojects/{year}/{month}/'; 일 수 있습니까? 고마워 .....스프링 mvc, 각도 및 최대 절전 모드로 RESTful API에서 오른쪽 작업 부엉 경로

내 인 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; 
} 

내 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); 
} 


} 

답변

0

첫째, 기본 컨텍스트 HREF에 대한 index.html을을 확인 "/"

*<head> 
    <title ng-bind="title">AngularJs</title> 
    <meta charset="UTF-8"> 
    <base href="/" /> 
</head>* 

파일 만들기 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'}}); 
    } 
})(); 

에 연결하기위한 서비스 그리고 Github

(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); 
      } 
     } 
    } 
})(); 

확인 예처럼, 컨트롤러에 서비스를 주입