您的位置:首页 > 编程语言 > Java开发

Spring MVC使用指示符重定向

2016-05-23 22:50 471 查看
在JSP中,可以使用
response.sendRedirect("");
来重定向,但这条语句不会终止函数执行,即执行完这条语句之后,后面的语句还会执行,这就会造成一些问题。

例如有如下显示店铺的控制器,如果用户设置类店铺名,就显示店铺,如果没有,就跳转到店铺名设置页面。

@RequestMapping(method = RequestMethod.GET, path = "/shop/{shopid}")
public String showmyshop(Model model,
@PathVariable String shopid) {

ShopEntity shop = shopService.getShop(shopid);
if(shop==null){
System.out.println("商铺不存在");
//TODO 跳转到店铺名设置页面
}
return "user/seller/myshop";
}


很明显,TODO 里是一个跳转语句,那么,能不能使用呢?

response.sendRedirect("/shopnamesetting");


答案是不能,使用这句的话,函数不会返回,而是继续执行
return "user/seller/myshop";
,结果是不会跳转。

所以,这里应该用“redirect:”跳转指示符来跳转:

return "redirect:/shopnamesetting";


当返回的字符串中带有“redirect:”或“forward:”前缀时,Spring MVC会对其进行特殊处理,将“redirect:”或“forward:”当做指示符,其后的字符串当做URL来处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: