Ann
Ann

Reputation: 473

in spring framework how to get response from controller to jsp page by ajax call passing an id value to controller

In my program i need to perform an operation by passing id.The id is selected from a dropdown box(ie;changing dynamically).so to pass the id i'am using ajax.but i don't know the code to receive the response back from controller in spring.

<div class="form-group">
   <label  class="col-sm-4 control-label">Employee</label>
   <div class="col-sm-6">
     <select id="empId" name="empId" class="form-control" >
        <option value="" >--Select--</option>
        <c:forEach var="row" items="${employeeList}" >
          <option value="${employeeList.Id}">${employeeList.name</option>
        </c:forEach> 
     </select>
   </div>
   <div class="col-sm-6">
     <input type="text" name="empname" id="empname" class="form-control"/>
   </div>
 </div>


//i need to pass the employee id from the dropdown box to controller and get     //the name of the employee as response .and set the response value in the text     //box.how can be it done in spring using ajax.

//ajax code i tried

  $('#empId').change(function(event) {  
                var eId= $("select#empId").val();
                $.get('getEmpName', {
                    id: eId
                }, function(data) {
                    $('#empname').val(data);
                });
            });
//but i am not getting any response ie:nothing in data

Upvotes: 3

Views: 1878

Answers (1)

Ataur Rahman Munna
Ataur Rahman Munna

Reputation: 3917

Here the ajax side code:

$('#empId').change(function() {  
    $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'your_url', // in your controller side (RequestMapping value)
            data: 'empId='+$('#empId').val(),
            success: function(responseData, textStatus) {
                // your stuff here. you found the response in responseData var.
            },
            complete: function(textStatus) {

            },
            error: function(responseData)
            {

            }
    });
});

And your controller side code like something below,

@RequestMapping(value = "your_url", method = RequestMethod.POST)
    public ResponseEntity<String> postMethod(HttpServletRequest req) {
        String jsonString = "";
        String empId = req.getParameter("empId");
        // your operation done here and 
        //convert it to json format before sending response.
        jsonString = gson.toJson("your response convert here to json format"); // here i used google Gson library to convert your response in json format.

        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.add("Content-Type", "text/html; charset=utf-8");
        return new ResponseEntity<String>(jsonString, responseHeaders, HttpStatus.CREATED);
    }

Upvotes: 2

Related Questions