premashree
premashree

Reputation: 11

Pass the object from angularjs controller to rest api

hi i am creating a application with Angularjs,REST service with spring. i want to pass the object from angulajs url to rest service , but it does work, please any one help me, my jsp page code is like below,

<html ng-app="studentApp">
<body>
<div ng-controller="studentController">
<table border = "0">
<tr>
           <td>Enter first name:</td>
           <td><input type = "text" ng-model = "student.firstName"></td>
        </tr>

        <tr>
           <td>Enter last name: </td>
           <td>
              <input type = "text" ng-model = "student.lastName">
           </td>
        </tr>
</table>
</div>
</body>
</html>

and my angularjs code is,

var studentApp = angular.module("studentApp", []);

  studentApp.config(['$httpProvider', function ($httpProvider) {
  $httpProvider.defaults.useXDomain = true;
  delete $httpProvider.defaults.headers.common['X-Requested-With'];
   }]);

 studentApp.controller("studentController", [ '$scope', '$http',
 function($scope, $http) {

$scope.toggle=true;
var urlBase="http://localhost:8080/studentweb/";        

    $scope.insertStudent = function inserStudent() {

        $http({
            method : 'POST',
            url : urlBase+'/Student/insert',
            data:  {student:data}
        }).success(function(data, status, headers, config) {
            $scope.student=data;
            $scope.toggle='!toggle';
        }).error(function(data, status, headers, config) {
            alert( "failure1");
        });

and my rest service is,

 public class StudentController
{
 @RequestMapping(value="/Student/insert",method = RequestMethod.POST ,params= {"student"})
 public String insertStudent(@RequestParam("student") StudentVO student) throws ParseException {    

     student.setFirstName(student.getFristName());  
     student.setLastName(student.getLstName());     
     studentcontrol.addStudent(student);    

     return "";

 }  

}
} ])

Upvotes: 1

Views: 3491

Answers (1)

Sachin Siwach
Sachin Siwach

Reputation: 90

The problem is that you "usrlBase" variable has "student/" extra as you are already calling your Student controller in url : urlBase+'/Student/insert' Hence the complete URL becomes something like http://localhost:8080/student//Student/insert whereas it should be something like: http://localhost:8080/Student/insertStudent

Update: Below is an absolutely fine working example with a sample restful service you had some brackets missing in your code. Please go through the below code and get back to me if required.

<html ng-app="studentApp">
<div ng-controller="studentController">
    <table border="0">
        <tr>
            <td>Enter first name:</td>
            <td><input type="text" ng-model="student.FirstName"></td>
        </tr>
        <tr>
            <td>Enter last name: </td>
            <td>
                <input type="text" ng-model="student.LastName">
            </td>
        </tr>
    </table>
</div>

Script: var studentApp = angular.module("studentApp", []);

    studentApp.config(['$httpProvider', function ($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }]);

    studentApp.controller("studentController", ['$scope', '$http',
    function ($scope, $http) {

        $scope.toggle = true;
        //var urlBase = "http://localhost:8080/student/";

       // $scope.insertStudent = function () {
            debugger;
            $http({
                method: 'GET',
                url: 'http://services.odata.org/V4/Northwind/Northwind.svc/Employees(1)?$format=json',
                // data: { student: data }

            }).success(function (data, status, headers, config) {
                debugger;
                $scope.student = data;
                $scope.toggle = '!toggle';
            }).error(function (data, status, headers, config) {
                debugger;
                alert("failure1");
            });
        //  }
    }]);

Upvotes: 1

Related Questions