spring mvc 中自定义404页面在IE中无法显示favicon.ico问题的解决方法。
此处用的是jsp,控制层用的是ModelAndView,
具体解决方法如下:
@RequestMapping(value = "notfound", method = RequestMethod.GET) public ModelAndView notfound() { ModelAndView modelAndView = new ModelAndView(); String viewName = "error"; modelAndView.setViewName(viewName); String useragent = servletRequest.getHeader("user-agent"); if (StringUtils.isNotBlank(useragent)) { boolean isMobile = CheckMobile.check(useragent); if (isMobile) { viewName = "errormobile"; modelAndView.setViewName(viewName); } } //解决favicon.ico在IE下无法显示的问题。 modelAndView.setStatus(HttpStatus.PERMANENT_REDIRECT); return modelAndView; }
web.xml
<error-page>
<error-code>404</error-code>
<location>/notfound</location>
</error-page>
因为有手机和PC2套不同的模板,所以要进行判断,为什么要加modelAndView.setStatus(HttpStatus.PERMANENT_REDIRECT);这句话呢?因为ModelAndView如果遇到了404等错误页面,是不会跳转的,就算你在JS里面加了window.location.href也不行,我猜测这是model的一个状态问题,因为本身你到的就是一个404,不可达的页面,它怎么跳?唯一的办法就是设置modelaAndView的状态,模拟重定向跳转。只要把ModalAndView设置成跳转,就OK了。此问题只存在于IE,其他浏览器不受影响。另外别忘了在link里面加上通用的ico标签哦。
作者:
KMSFan
出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!
出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!