2016-03-24 6 views
3

Wenn ich Post-Methode verwende, funktioniert es gut, aber wenn ich versuche, es zu ändern, um den Server zu übernehmen, erhalte kein Objekt.Spring + Angularjs kann den zu setzenden Beitrag nicht ändern

UserController.java:

@RequestMapping(value = "/user/{user}", method = RequestMethod.POST) 
    public ResponseEntity<User> updateUser(@ModelAttribute User user) { 
     userService.updateRow(user); 
     return new ResponseEntity<User>(user, HttpStatus.OK); 
    } 

user_service.js:

updateUser: function(user, id){ 

        return $http.post('http://localhost:8080/user/', user) 
         .then(
         function (response) { 
          return response.data; 
         }, 
         function (errResponse) { 
          console.error('Error while updating user'); 
          return $q.reject(errResponse); 
         } 
        ); 

      }, 

Wie kann ich es ändern Methode zu setzen?

Mit PUT:

UserController.java:

@RequestMapping(value = "/user/{user}", method = RequestMethod.PUT) 
    public ResponseEntity<User> updateUser(@RequestBody User user) { 
     userService.updateRow(user); 
     return new ResponseEntity<User>(user, HttpStatus.OK); 
    } 

user_service.js:

updateUser: function(user, id){ 
        return $http.put('http://localhost:8080/user/', user) 
         .then(
         function (response) { 
          return response.data; 
         }, 
         function (errResponse) { 
          console.error('Error while updating user'); 
          return $q.reject(errResponse); 
         } 
        ); 

      }, 
+0

Anstatt uns den Code anzuzeigen, der POST verwendet und der gut funktioniert, zeigen Sie uns den Code, der PUT verwendet und nicht funktioniert. Sagen Sie uns genau, was Sie erwarten und was es stattdessen tut. "Es funktioniert nicht" ist eine viel zu vage Beschreibung. –

+0

Haben Sie es sowohl im Winkel als auch im Frühling geändert? –

+0

@Luka Jacobowitz, Ja. – Geha

Antwort

1

Sie müssen die ID in der URL enthalten. Andernfalls stimmt Ihre Route nicht mit /user/{user} überein. Es sollte ungefähr so ​​aussehen:

updateUser: function(user, id){ 
     return $http.put('http://localhost:8080/user/' + id, user) 
     .then(
      function (response) { 
       return response.data; 
      }, 
      function (errResponse) { 
       console.error('Error while updating user'); 
       return $q.reject(errResponse); 
      } 
    ); 

}, 
Verwandte Themen