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来解析

不知道总结的是否正确完善,不对的话,希望能指出来,完善一下,以便学习

时间: 2024-08-25 14:05:22

springmvc的foward和redirect跳转简单解析的相关文章

springmvc request foward 和 redirect

---恢复内容开始--- 最近在实现那个学生信息录入的时候,先是在添加学生的页面添加完,然后想直接调用Conroller层遍历学生的方法,我的意思就是在contoller一个方法怎么直接调用另外一个方法, 这个就需要用到  forward 和redirect 这个两个方法,先看我的StudentController 里面的代码 package zizai.controller; import java.util.List; import javax.annotation.Resource; im

SpringMVC Redirect 跳转后保存Model中的数据

在用户的列表页面删除一个用户,在删除后仍停留在列表页面,但是要显示删除成功或者相应的错误信息. 以上这种情况在后台我们一般都分成2个controller,一个删除的controller和一个查询列表的controller,这时候我们就 需要用到Redirect跳转,在删除成功后进行跳转进行列表查询,(在struts2中是action到action的跳转). /** * 用户列表 * * @return */ @RequestMapping(value = "list-user", me

学习springMVC实例1——配置和跳转到HelloWorld

本文让大家迅速掌握springMVC的使用方法,以最简单的方式理解此框架 一.用eclipse新建一个web项目,命名为springMVC1,tomcat的端口号为9090 二.在WEB-INF目录下的lib文件夹中添加所需要的jar包 上面所添加的jar包,只要从网上下载都是都有的 三.编辑web.xml文件,在WEB-INF目录下 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns

SpringMVC__配置视图解析以及服务端重定向和服务端跳转简单代码

applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.spri

SpringMVC 理论与实用技术(一) 简单、实用、易懂的几个实例

SpringMVC先来看一下百度百科中的定义; Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velo

使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB

最近在总结一些项目的基础知识,根据公司最近的一些意向和技术路线,初步整理了一个简单的配置例子     1.使用springmvc代替strutsMVC     2.使用请求json数据串的方式代替传统返回jspview.     3.使用Mybatis代替hibernate 在这些要求的基础上,做了一些尝试.    现在将配置文件整理如下:   目录结构如下:    1.web.xml <?xml version="1.0" encoding="UTF-8"?

ngx lua模块源码简单解析

ngx lua模块源码简单解析分类: nginx 2014-07-11 11:45 2097人阅读 评论(0) 收藏 举报nginxlua数据结构架构目录(?)[+]对nginx lua模块的整个流程,原理简单解析.由于nginx lua模块相关配置,指令,API非常多,所以本文档只以content_by_lua指令举例说明. 读本文档最好配合读源码. 不适合对nginx和lua一点都不了解的人看.1.相关配置详细配置见 https://github.com/openresty/lua-ngin

对 cloudwu 简单的 cstring 进行简单解析

题外话 以前也用C写过字符串,主要应用的领域是,大字符串,文件读取方面.写的很粗暴,用的凑合着.那时候看见云风前辈的一个开源的 cstring 串. 当时简单观摩了一下,觉得挺好的.也没细看.过了较长一段时间,想整合一下,将大字符串和云风的cstring 短简单的串合在一起变成一种.但是自己 认真复制了一遍后发现. 1.整合不了 云风(后面都省略前辈二字,觉得云风两个字,就已经帅的不行了)简单cstring.因为处理的领域不一样. 云风的 cstring => String , 而自己写的操作文

SQLServer 原理简单解析

(1) 客户端sqlserver网络接口通过一种网络协议(可以是共享内存:简单高速,客户端和sql server在同一台计算机默认连接方式:TCP/IP:访问sql server最常用的一种协议,客户端指定ip地址和端口号连接到sql server;命名管道:命名管道和TCP/IP协议在体系结构上是类似的,是为局域网设计的,在广域网中速度会慢一些:VIA:虚拟接口适配器,是一种可以让两个系统进行高性能通信的协议,要求通信两端使用特殊的硬件和专门连接)和服务的的SNI建立了一个连接,然后通过网络协