Spring MVC controller怎么处理301跳转
本篇内容主要讲解"Spring MVC controller怎么处理301跳转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spring MVC controller怎么处理301跳转"吧!
一、 SpringMVC301,302跳转
spring mvc项目是spring的一个子项目用于处理视图层的请求。
302跳转很简单:
@RequestMapping(value = "blog.html")public String rindex() { return "redirect:/blog";}
按照不重复造轮子的理念,其实301跳转也很简单:
@RequestMapping(value = "blog.html")public RedirectView rindex(HttpServletRequest request) { RedirectView redirectView = new RedirectView("/blog"); redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); return redirectView; }
spring mvc 提供了一个专门用于处理各种重定向的view视图。
跳转结果如下图:
其它各种实现如:
response.setStatus(301);
response.setHeader("Location", "https://www.xxxx");
二、 Redorect跳转传参
Redorect传参3种方式
第一种:手动拼接url
new ModelAndView("redirect:/toList?param1="+value1+"¶m2="+value2);
这样有个弊端,就是传中文可能会有乱码问题,需要自己处理。
第二种:RedirectAttributes attributes
这里用它的addAttribute方法,这个实际上重定向过去以后你看url,是它自动给你拼了你的url。
使用方法:
public String test(RedirectAttributes attributes)
{
attributes.addAttribute("test", "hello");
return "redirect:/test/test2";
}
第三种:ModelAndView在model加上属性
ModelAndView model = new ModelAndView("redirect:/main/index");
model.addObject("userName", userName); //把userName参数带入到controller的RedirectAttributes
return model;
到此,相信大家对"Spring MVC controller怎么处理301跳转"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!