在spring框架中如何通过ajax调用将id值传递给控制器​​来获取从控制器到jsp页面的响应

时间:2016-04-06 03:50:52

标签: java ajax spring-mvc

在我的程序中,我需要通过传递id来执行操作。从下拉框中选择id(即;动态更改).so使用ajax传递id。但我不知道代码在春天收到控制器的回复。

<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代码

  $('#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

1 个答案:

答案 0 :(得分:2)

这里是ajax方码:

$('#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)
            {

            }
    });
});

你的控制器端代码如下所示,

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