2016-09-07 4 views
0

Ein AJAX-Aufruf an den Controller erfolgt:Java Spring MVC Controller Umleitung nicht Modeland

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

diesen Anruf erfolgreich von der Steuerung interpretiert wird:

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

Aber wenn ich Rückkehr der ModelAndView nichts passiert! Der Blick bleibt gleich und der Browser nicht angezeigt 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

haben Sie die View-Resolver hinzugefügt? – kuhajeyan

+0

ja, ich habe: \t \t \t \t QuickSort

+0

was ist Ihr Controller-Mapping und die uRL, die Sie aufrufen, verwenden, um? – kuhajeyan

Antwort

0

Ihre Innenansicht Resolver wie diese

<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

sieht genau so aus. Leider ist das nicht das Problem. – QuickSort

+0

Wie rufen Sie den Controller auf? URL? – kuhajeyan

+0

Ja, ich rufe den Controller mit URL (siehe Ajax URL) – QuickSort

0

prüfen ajax Dokumentation sollte here

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

Was machen Sie mit der Ajax-Antwort? Von dem, was ich sehe, tust du nichts mit Serverantwort.

+0

ich brauche keine Ajax-Antwort - so dass keine Antwort notwendig ist; Ich möchte nur, dass der Controller mir eine andere Ansicht zeigt -> ** gebe ein neues ModelAndView ("view") ** zurück. Die neue Ansicht wird jedoch nicht im Browser angezeigt, sie bleibt auf der alten Ansicht. – QuickSort

+0

Dann müssen Sie keinen Ajax-Anruf tätigen. Sie können einfach einen Link (

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); 
} 
}); 
Verwandte Themen