如何从ajax调用到Spring Controller渲染新的jsp页面

时间:2014-12-08 06:30:27

标签: jquery ajax spring jsp

我正在使用Spring

锚点标签列表如下,我需要进行后调用,所以我使用了ajax查询。

<td><a href="#" onclick='doAjax(${taskDetail.taskId})'> ${taskDetail.taskTitle}</a></td> 

在我的同一个jsp中我有ajax调用如下

function doAjax(x) {

    alert(x);

    $.ajax({
    type: "POST",
    url: "getTaskDetail",
    data: { taskId: x }
       }
    })
  }

现在我的控制器已经

@RequestMapping(value = "/getTaskDetail", method = RequestMethod.POST)
    public String getTaskDetail(@RequestParam String taskId, Model model) {
    System.out.println("i am herer......");

        try {


            TaskDet taskDet = getTaskinformation(Integer.parseInt(taskId));


            model.addAttribute("taskDet", taskDet);

            return "showtaskpage";
        } catch (Exception e) {
            System.out.println(e.getMessage());
                        }
    }

现在我的&#34; showtaskpage&#34;本身就是.jsp页面。

现在的问题是,一切都像魅力一样,但是当它返回showtaskpage时,它没有在新的jsp页面中被渲染,我仍然在上一页,当我点击这个锚链接时,它会转到控制器并获得响应,但我将获得.jsp整页作为数据格式,我们可以使用firebug看到它。

我希望显示为http://localhost:8080/mydummy/showtaskpage

提前致谢。

2 个答案:

答案 0 :(得分:3)

我修改如下

$.ajax({
type: "POST",
url: "getTaskDetail",
data: { taskId: x },
success : function(data) {
    alert('success');
    document.open();
    document.write(data);
    document.close();
}
})

现在我发生了什么,它将呈现为新的JSP页面。

答案 1 :(得分:0)

返回ModelAndView的方式

@RequestMapping(value = "/getTaskDetail", method = RequestMethod.POST)
public String getTaskDetail(@RequestParam String taskId, ModelAndView mav) {
    System.out.println("i am herer......");

    if (!user.isAuthenticated()) {
        mav.setViewName("redirect:http://localhost:8080/mydummy/showtaskpage");
        return mav;
    }

    mav.setViewName("showtaskpage");
    mav.addObject("wxyz", listService.getLists());

    return mav;
}

返回String的方式

@RequestMapping(value = "/getTaskDetail", method = RequestMethod.POST)
public String getTaskDetail(@RequestParam String taskId, ModelAndView mav) {

    if (!user.isAuthenticated()) {
        return "redirect:http://localhost:8080/mydummy/showtaskpage";
    }

    model.addAttribute("wxyz", listService.getLists());

    return "showtaskpage";
}