2014-12-08 66 views
1

使用Spring我我如何呈現來自AJAX調用新JSP頁面來春控制器

錨標記列表如下圖所示,我需要做專通話所以我用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()); 
         } 
    } 

現在我的 「showtaskpage」 本身的.jsp頁面。

現在的問題是,一切都像魅力一樣,但是當它返回showtaskpage時,它並沒有在新的jsp頁面中被修飾,我仍然在前一頁,當我點擊這個錨鏈接時,控制器和獲取響應,但我會將.jsp整頁作爲數據格式,我們可以使用螢火蟲看到它。

我想顯示爲提前http://localhost:8080/mydummy/showtaskpage

感謝。

+0

所以你的意思是說,該網址也應該改變與Ajax請求成功? – Jai 2014-12-08 06:34:08

+0

我想要得到新的jsp頁面,它是showtaskpage, – user2045810 2014-12-08 06:35:28

+0

現在它停留在同一頁面而不顯示我的jsp頁面。 – user2045810 2014-12-08 06:36:05

回答

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

返回的字符串的方式的方式

@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"; 
} 
+0

讓我試試jai,非常感謝你 – user2045810 2014-12-08 07:00:26

+0

secound代碼不會呈現新的jsp,它顯示在同一個jsp文件中。 – user2045810 2014-12-08 07:01:37

+0

從firefox使用螢火蟲POST POST http:// localhost:8080/timemantra/getTaskDetail \t ,發生POST調用,響應爲200 OK 32ms,我可以在響應中看到showtaskpage jsp頁面。 – user2045810 2014-12-08 07:05:54

3

我已經修改如下

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

我現在發生的事情是,它將使新JSP頁面工作。

+0

這個答案解決了我的問題。 – BAE 2015-06-18 03:41:07

+0

謝謝你,很好的回答! – 2016-10-20 06:54:27