0

Ajax 调用 Spring 控制器employee_edit但 ModelAndView 不工作。它不会重定向到带有对象的 jsp 页面。我想重定向到带有对象employee的页面employee_registration.jsp。代码没有错误。

阿贾克斯

 $('#example1 tbody').on( 'click', 'button1', function () {
                var eid = table.row( $(this).parents('tr') ).data().eid;
                $.ajax({
                    type:"GET",
                    url:"employee_edit?eid="+eid
                }); 

控制器

@RequestMapping(value="/employee_edit", method=RequestMethod.GET)
public ModelAndView RegitrationEdit(@RequestParam("eid") long eid)
{           
  Employee employee=employeeService.getEmployee(eid);
  ModelAndView mv=new ModelAndView(); 
  mv.setViewName("employee/employee_registration");
  mv.addObject("employee",employee);
  return mv;
}

运行代码后,它不会显示任何错误。浏览代码ModelAndView("employee/employee_registration","employee",employee);但没有任何反应。提前致谢。

4

2 回答 2

0

我认为在您的 ajax 调用中您需要添加成功参数。您可以简单地将您的呼叫修改为

 $.ajax({
            type:"GET",
            url:"employee_edit",
            data:{"eid":eid},
            success:function(data){
            }
       });

或者您也可以在代码中仅添加成功参数

$.ajax({
            type:"GET",
            url:"employee_edit?eid="+eid
            success:function(data) { }
       });

但我更喜欢第一个。它更清楚。

这应该完成 ajax 调用并且您的程序应该可以工作。

于 2017-12-08T06:52:00.023 回答
0

从 ajax 调用时,ModelAndView 将不起作用。您需要通过使用注释标记返回类型来将员工对象返回为 json@ResponseBody

@RequestMapping(value="/employee_edit", method=RequestMethod.GET)
public @ResponseBody Employee RegitrationEdit(@RequestParam("eid") long eid)
{           
  Employee employee=employeeService.getEmployee(eid);    
  return employee;
}

成功调用后,您将在成功回调中获得响应。

$.ajax({
    type:"GET",
    url:"employee_edit?eid="+eid,
    success: function(data) {
        //here data is the employee object
        //process it here and redirect using window.location
    }
}); 
于 2017-12-08T06:57:48.540 回答