2016-09-07 64 views
0

一個Ajax調用完成到控制器:的Java Spring MVC的控制器不是重定向的ModelAndView

$.ajax({ 
     cache : false, 
     type : "POST", 
     url : url, 
     data : { 
     //some data 
     } 

調用成功由控制器解釋:

@RequestMapping(value = "/checkIfRatedOverall") 
public ModelAndView checkIfRatedOverall(@ReqestParam.......) 

但是,當我返回ModelAndView沒有任何反應! 的觀點保持不變,並在瀏覽器不會顯示xxx.jsp

return new ModelAndView("xxx"); //NOTHING HAPPENS 

LOG:

JstlView:166 - Forwarding to resource [/WEB-INF/views/xxx.jsp] in InternalResourceView 'xxx' 

DispatcherServlet:1251 - Rendering view [org.springframework.web.servlet.view.JstlView: name 'xxx' 

DispatcherServlet:1000 - Successfully completed request 
+0

您是否添加了視圖解析程序? – kuhajeyan

+0

是我沒有: <豆:豆 \t類= 「org.springframework.web.servlet.view.InternalResourceViewResolver」> \t \t <豆:屬性名= 「前綴」 值=「/ WEB-INF /視圖/ 「/> \t \t <豆:屬性名=」後綴「值=」 JSP」 /> \t – QuickSort

+0

什麼是你的控制器映射和您使用調用網址是什麼? – kuhajeyan

回答

0

內部視圖解析器應該是這樣的

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 
+0

它看起來完全像這樣。不幸的是這不是問題。 – QuickSort

+0

你如何調用控制器?網址是什麼? – kuhajeyan

+0

是的,我確實使用url調用控制器(請參閱ajax url) – QuickSort

0

檢查AJAX文檔here

$.ajax({ ...}).done(
     function(html) { 
      $("#results").append(html); 
     }); 

你對ajax響應做了什麼?從我看到你對服務器響應什麼都不做。

+0

我不需要ajax響應 - 所以不需要響應;我只想讓控制器向我展示一個不同的視圖 - > **返回新的ModelAndView(「view」)**。但新視圖並未顯示在瀏覽器中,而是保留在舊視圖上。 – QuickSort

+0

然後你不需要進行ajax調用。您可以簡單地使用鏈接(

0
use @ResponseBody Attribute and return JSON object instead of model view 

@RequestMapping(value = "checkIfRatedOverall", method = RequestMethod.POST) 
public @ResponseBody String checkIfRatedOverall(@ReqestParam.......) 
{ 
return jsonStr://return json string 
} 

in jquery parse the string with JSON.parse(data) 

$.ajax({ 
cache : false, 
type : "POST", 
url : url, 
data : { 
    //some data 
}, 
success : function(data) { 
    JSON.parse(data); 
} 
}); 
相關問題