SpringMVC之请求转发和重定向

如果我们配置了视图解析器:

<!-- 配置前端视图解析器 -->
 	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/pages/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean> 
	

那么我们在控制器层的方法的返回值只需是视图名,SpringMVC就可以帮我们自动拼串,让我们能跳转到/WEB-INF/page下的页面下。假设WebContent下有一个hello.jsp文件,但是如果我们在配置了视图解析器的前提下如何跳转到WebContent下的hello.jsp。
采用如下办法就可以做到:

	@RequestMapping("/handle01")
	public String handle01() {
		System.out.println("handle01....");
		return "/../../hello";
	}

但是这样做太过麻烦,SpringMVC中我们可以使用forward进行请求转发,转发到我们想要去的页面。具体使用如下:

@RequestMapping("/hello1")
	public String testForward() {
		
		return "forward:/hello.jsp";
	}
	

使用forward转发请求,可以转发到指定页面上,可以不带/,但是不带的话是相对路径,容易出现错误,带上/的话是绝对路径,带前缀的转发,不会进行路径的拼接,即不会经过视图解析器。
当然使用forward前缀不仅能跳转到指定的jsp页面,也可以跳转到其他请求上,如请求转发hello1请求。代码示例如下:

@RequestMapping("/hello2")
	public String testForward2() {
		return "forward:/hello1";
	}

使用redirect前缀的使用和forward的使用相差不大,唯一不同就是redirect代表的是请求重定向,而forward是请求转发。redirect的使用示例如下:

//重定向到指定jsp页面
	@RequestMapping("/hello3")
	public String testRedirect1() {
		return "redirect:/hello.jsp";
	}
	//重定向发送其他请求
	@RequestMapping("/hello4")
	public String testRedirect2() {
		return "redirect:/hello3";
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值