jquery – 如何在spring mvc中将对象从控制器返回到ajax

前端之家收集整理的这篇文章主要介绍了jquery – 如何在spring mvc中将对象从控制器返回到ajax前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须将员工列表从Controller返回到jQuery ajax.我该怎么做呢?
//controller part 
@RequestMapping("phcheck")
public ModelAndView pay(@RequestParam("empid") int empid,String fdate,String tdate) {

   ModelAndView mav = new ModelAndView("phcheck");
   List<Employee> emp=entityManager.createQuery("select e from Employee e where e.empId="+empid,Employee.class).getResultList();
   mav.addObject("emp",emp); <----I need this list of employee in ajax
   return mav;
}

视图中的Ajax

//Ajax part
$(document).ready(function () {
$("#empid").change(function () {
    if ($("#fdate").val() != "" && $("#tdate").val() != "" && $("#empid").val() != "") {
        jQuery.ajax({
            url: "phcheck.htm?empid=" + $("#empid").val() + "&&fdate=" + $("#fdate").val() + "&&tdate=" + $("#tdate").val(),success: function (data) {
                alert(data + "success");
            },error: function (data) {
                alert(data + "error");
            }
        });
    } else {
        alert("Please fill the from date and to date or select the employee id");
        $("#empid .option").attr("selected","selected")
    }
});

});

提前致谢.

解决方法

I need this list of employee in ajax

在春天,您需要对象序列化,反序列化和消息转换.在这种情况下,您需要使用@RequestBody和@ResponseBody注释控制器处理程序方法.

哪里:

> @ResponseBody:将告知spring尝试转换其返回值并自动将其写入http响应.
> @RequestBody:将告知spring尝试将传入请求主体的内容动态转换为参数对象.

在您的情况下,您需要JSON类型,您必须将@ResponseBody添加到您的方法签名或方法上方,并生成和使用可选的,如:

@RequestMapping(value="phcheck",method=RequestMethod.GET
                produces="application/json")
public @ResponseBody List<Employee> pay(@RequestParam("empid") int empid,String tdate) {

  //get your employee list here
  return empList;
}

并在AJAX调用中使用:

> contentType:’application / json’属性告诉您要发送的数据类型.和
> dataType:json属性告诉jquery将接收哪种内容类型的响应.

在你的情况下contentType:’application / json’不需要,默认一个,即’application / x-www-form-urlencoded; charset = UTF-8’就足够了.

并且您可以在AJAX成功中收到员工列表,迭代它就像:

success: function (data) {
          $.each(data,function(index,currEmp) {
             console.log(currEmp.name); //to print name of employee
         });    
        },

注意:构建路径上应该有Jackson mapper或任何其他映射器,以便进行JSON序列化和反序列化.

也可以看看:

> New features in spring mvc 3.1

原文链接:https://www.f2er.com/jquery/177930.html

猜你在找的jQuery相关文章