Spring MVC使用指示符重定向
2016-05-23 22:50
471 查看
在JSP中,可以使用
例如有如下显示店铺的控制器,如果用户设置类店铺名,就显示店铺,如果没有,就跳转到店铺名设置页面。
很明显,TODO 里是一个跳转语句,那么,能不能使用呢?
答案是不能,使用这句的话,函数不会返回,而是继续执行
所以,这里应该用“redirect:”跳转指示符来跳转:
当返回的字符串中带有“redirect:”或“forward:”前缀时,Spring MVC会对其进行特殊处理,将“redirect:”或“forward:”当做指示符,其后的字符串当做URL来处理
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来处理
相关文章推荐
- java中的常见8种排序算法
- Eclipse项目转AndroidStudio遇到问题记录
- thinking in java之Collections工具类的使用
- Java内存泄漏
- maven搭建ssm分模块框架+dubbo (myeclipse版) (三)
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
- JAVA——利用wait和notify实现生产者和消费者
- 001. MyBatis+SpringMVC+Spring[重置版]
- JDK安装与环境变量配置
- JAVA并发七(多线程环境中安全使用集合API)
- java 泛型
- 【转】攻破JAVA NIO技术壁垒
- 虚拟机类加载过程
- 【45】java的封装剖析
- 【45】java的封装剖析
- 【45】java的封装剖析
- Spark学习15之用Maven编译时报 java.lang.OutOfMemoryError: PermGen space异常
- Java之System类的常用方法
- spring的定时任务