Java Spring MVC Controller没有重定向modelandview

时间:2016-09-07 07:54:32

标签: java spring jsp spring-mvc

对Controller进行AJAX调用:

$.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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

检查ajax文档here

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

您使用ajax响应做了什么?从我看到你对服务器响应无能为力。

答案 2 :(得分:0)

使用@ResponseBody属性并返回JSON对象而不是模型视图

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

在jquery中使用JSON.parse(data)

解析字符串
$.ajax({
    cache : false,
    type : "POST",
    url : url,
    data : {
        //some data
    },
    success : function(data) {
        JSON.parse(data);
    }
});