springmvc向页面传值与视图解析器配置、springmvc跳转方式

一、向页面传值

响应跳转,如何绑定参数

第一种:原生方式

	@RequestMapping("/form5")
public void form5(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
	req.setAttribute("message5", "tom");
	req.getRequestDispatcher("/jsp/model2.jsp").forward(req, resp);
}

第二种:ModelAndView方式

//使用ModelAndView对象
@RequestMapping("/form6")
public ModelAndView form6(){
	ModelAndView mv = new ModelAndView();
	mv.addObject("message6", "jack");
	mv.setViewName("/jsp/model2.jsp");
	return mv;
}

第三种:使用Model对象

	//使用Model对象 -- 【掌握】
@RequestMapping("/form7")
public String form7(Model model){
	model.addAttribute("message7", "james");
	return "/jsp/model2.jsp";
}

注意:

	在SpringMvc中默认跳转方式是转发:默认转发 ,因为1.可以共享request中的数据   2.可以转发到WEB-INF  3.效率要高一些
	这三种方式,数据默认都是绑定在request中

二、视图解析器

实际项目中通常会把返回数据统一交给视图解析器做处理
	解析视图和数据的配置了视图解析器之后,不管返回什么样的值都会默认自动经过视图解析器
配置如下:
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<!-- 前缀prefix:会自动在返回值前面加个上/ -->
	<property name="prefix" value="/"></property>
	<!-- 前缀suffix:会自动在返回值后面加个上.jsp -->
	<property name="suffix" value=".jsp"></property>
</bean>

三、跳转方式

区别:
	转发:一次请求,可以共享request的数据,地址栏不会变化,不可以转到外部应用
	重定向:多此请求,不可以共享request的数据,地址栏会变,可以定向到外部应用
SpringMvc中的转发和重定向写法:
	转发:
  1. 默认转发:会经过视图解析器
@RequestMapping("form6")
		//默认转发,会经过视图解析器。
		public ModelAndView getResp5(){
			ModelAndView m=new ModelAndView();
			m.addObject("message6", "ModelAndView");
			m.setViewName("jsp/model2");
			return m;
		}
2.显示转发:forward:xxx
			不会经过视图解析器,一般不用。
@RequestMapping("form6")
		//显示转发forward,不会经过视图解析器。一般不会使用
		public ModelAndView getResp3(){
			ModelAndView m=new ModelAndView();
			m.addObject("message6", "ModelAndView");
			m.setViewName("forward:/jsp/model2.jsp");
			return m;
		}
	重定向:redirect:xxx
		不会经过视图解析器
@RequestMapping("form6")
		//redirect,不会经过视图解析器。
		public ModelAndView getResp4(){
			ModelAndView m=new ModelAndView();
			m.addObject("message6", "ModelAndView");
			m.setViewName("redirect:/jsp/model2.jsp");
			return m;
		}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜掉在星星上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值