springmvc的foward和redirect跳转简单解析
Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到具体的 View,然后向浏览器渲染。假设逻辑视图名为 hello,通过配置,我们 配置某个 ViewResolver 如下:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<description>
假如逻辑试图名为 "hello",因此 viewResolver 将解析成 /WEB-INF/jsp/hello.jsp
</description>
<property name="order" value="10" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
实际上,框架还是通过 forward 的方式转发到了 /WEB-INF/jsp/hello.jsp。如果逻辑视图名是 /hello,实际还是转发到了 /WEB-INF/jsp/hello.jsp,即 /WEB-INF/jsp//hello.jsp 等同于 /WEB-INF/jsp/hello.jsp。
现在有个问题,如果 /hello 就是某个 controller 的映射,我想转发到这个 controller,怎么办?我们可以通过 forward 前缀来达到转发到其它资源的目的:
public String handle() {
// return "forward:/hello" => 转发到能够匹配 /hello 的 controller 上
// return "hello" => 实际上还是转发,只不过是框架会找到该逻辑视图名对应的 View 并渲染
// return "/hello" => 同 return "hello"
return "forward:/hello";
}
同理,如果我们想重定向到某个资源,我们可以通过 redirect 前缀来达到重定向到其它资源的目的:
public String handle() {
// 重定向到 /hello 资源
return "redirect:/hello";
}
总结:当你想在controller的映射requestMapping之间进行跳转一定要加前缀:foward 或者redirect
否则,只会把返回当做view来解析
springmvc的foward和redirect跳转简单解析的更多相关文章
- springmvc request foward 和 redirect
---恢复内容开始--- 最近在实现那个学生信息录入的时候,先是在添加学生的页面添加完,然后想直接调用Conroller层遍历学生的方法,我的意思就是在contoller一个方法怎么直接调用另外一个方 ...
- springmvc中controller内方法跳转forward?redirect?
使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程. 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数 ...
- 学习springMVC实例1——配置和跳转到HelloWorld
本文让大家迅速掌握springMVC的使用方法,以最简单的方式理解此框架 一.用eclipse新建一个web项目,命名为springMVC1,tomcat的端口号为9090 二.在WEB-INF目录下 ...
- Spring mvc redirect跳转路径问题
SpringMVC重定向视图RedirectView小分析 前言 SpringMVC是目前主流的Web MVC框架之一. 本文所讲的部分内容跟SpringMVC的视图机制有关,SpringMVC的视图 ...
- Redirect url 路径简单介绍
问题:Response.redirect 用法asp 中 用response.redirect () 跳转到不同的页面是怎么写的,比如从index.asp跳到admin目录下的a.asp 还有从a跳回 ...
- Django(完整的登录示例、render字符串替换和redirect跳转)
day61 1. 登录的完整示例 复习: form表单往后端提交数据需要注意哪三点: 五一回来默写 <-- 谁写错成from谁 ...
- SpringMVC(二)-- springmvc的系统学习之跳转结果的方式
资源: 尚学堂 邹波 springmvc框架视频 若无特别注明,例子项目的配置方式为注解 一.设置ModelAndView对象. 1.根据View的名称和视图解析器跳转到指定的页面. 2.跳转的 ...
- springMVC源码分析--@SessionAttribute用法及原理解析SessionAttributesHandler和SessionAttributeStore
@SessionAttribute作用于处理器类上,用于在多个请求之间传递参数,类似于Session的Attribute,但不完全一样,一般来说@SessionAttribute设置的参数只用于暂时的 ...
- 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. MySQL作为最流行的开源关系型数据库,有大量的拥趸.其生态已经相当完善,各项特性在圈内都有大量研究.每次新特性发布,都会 ...
随机推荐
- [osx] intellij-idea快捷键大全
官方地址:https://resources.jetbrains.com/assets/products/intellij-idea/IntelliJIDEA_ReferenceCard_mac.pd ...
- JS数组操作示意图(shift,unshift,pop,push)
shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b: ...
- SQL Server 2008创建oracle链接服务器(心得)
操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了 ...
- ios webView 放大网页解决/input 获得焦点focus 网页放大 解决
新手遇到的问题: 终于找到原因,各种HTML viewport 都试过 setScalePageToFit 也试过,webViewDidFinishLoad加JS代码,动态算webView.scrol ...
- python学习笔记之装饰器、递归、算法(第四天)
参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...
- Terra Vista 6.2
最近在做虚拟仿真相关工作,想把GIS中的一些想法用虚拟显示技术实现,在保证准确性的同时,提高展现效果. 前不久在朋友圈获得了一个强大的三维地形构建软件Terra Vista 6.2,据说这个软件是加拿 ...
- js Date 关于时间获取问题
var date1 = new Date(); var timeFormat = { 'yyyy-mm-dd': date1 .toJSON().split('T')[0], //"2017 ...
- wx getlocation
http://www.cnblogs.com/txw1958/p/weixin-web-location.html http://blog.csdn.net/myfmyfmyfmyf/article/ ...
- C#程序调用CodeSoft预先设计好的标签模块实现打印功能
if (this.tbSetLabel.Text.Trim() == "") { MessageBox.Show("请先 Enter 选择标签模板文件!", & ...
- 新版macbook air OS X El Capitan 10.11安装WIN找不到驱动介质???
这个问题已经解决 首先进入Boot Camp6 以后 顶上会有一个操作 -下载windowns 驱动程序 保存在优盘里面.然后再分区选择ISO(中间和你前面做的一样)电脑重启进入WIN安装 到你们出现 ...