Spring MVC使用指示符重定向

来源:互联网 发布:那些淘宝店铺质量又好 编辑:程序博客网 时间:2024/06/06 18:10

在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来处理

0 0