springmvc 拦截器中ModelAndView为null

Liebert 发布于 2015/09/06 16:35
阅读 5K+
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

首先在controller方法是这样的:

public void methodName(ModelMap model, ...............){

model.put(XXX,XXX);

}

有两种情况:

1.controller方法参数中带HttpServletResponse response时,方法处理完之后,

到了Interceptor 中(extends HandlerInterceptorAdapter)

postHandle方法的modelAndView参数为null

这样如果需要在Interceptor 中使用modelAndView只能在controller方法返回ModelAndView

如:

public ModelAndView methodName(HttpServletResponse response, ...............){

ModelAndView model = new ModelAndView ();

model.addObject(XXX,XXX);

return model;

}


2.controller方法参数中不带HttpServletResponse response,方法处理完之后,

到了Interceptor 中(extends HandlerInterceptorAdapter)

postHandle方法的modelAndView参数是有值的


——————————————————————————————————————————

有人知道是什么原因吗,难道方法参数中带response会使spring从response中去设置modelAndView?


加载中
1
coalchan
coalchan

http://www.rowkey.me/blog/2014/12/09/spring-mvc-httpservletresponse/

0
一叶鱼龙舞
还真是这种情况,不过平时很少用postHandle,用preHandle比较多。。
L
Liebert
目前发现的就是,response和modelmap不要同时存在controller方法参数中,不然用modelmap设置model的话返回时会有问题。spring debug日志显示Null ModelAndView returned ....
返回顶部
顶部