springMVC--(讲解2)结果跳转方式
springMVC--(讲解2)结果跳转方式
求是科技 发表于1年前
springMVC--(讲解2)结果跳转方式
  • 发表于 1年前
  • 阅读 61
  • 收藏 1
  • 点赞 0
  • 评论 0

#方式1:通过ModelAndView实现
设置ModelAndView对象,根据viewName和视图解析器跳转到指定的页面。
页面路径:视图解析器前缀+viewName+视图解析器后缀
ModelAndView设置如下

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public ModelAndView hello(HttpServletRequest req,HttpServletResponse resp){
		ModelAndView mav = new ModelAndView();
		//封装要显示的视图中的数据
		mav.addObject("msg","hello springmvc");
		//视图名,该视图是/WEB-INF/jsp/hello.jsp
		mav.setViewName("hello");
		return mav;
	}

视图解析器如下

	<bean id="viewResolver"  class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
		<property name="prefix" value="/WEB-INF/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

#方式2:通过ServletAPI实现,这个不需要配置视图解析器
通过HttpServletResponse来进行输出

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public void hello(HttpServletRequest req,HttpServletResponse resp) throws IOException{
		resp.getWriter().println("hello mvc");
	}

#方式3:通过HttpServletResponse来实现重定向

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public void hello(HttpServletRequest req,HttpServletResponse resp) throws IOException{
		//HttpServletResponse输出
		//resp.getWriter().println("hello mvc");
		//HttpServletResponse重定向  
		resp.sendRedirect("index.jsp");
	}

#方式4:通过HttpServletRequest转发

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public void hello(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		//HttpServletResponse输出
		//resp.getWriter().println("hello mvc");
		//HttpServletResponse重定向  
		//resp.sendRedirect("index.jsp");
		//HttpServletRequest转发
		req.setAttribute("msg", "显示内容");
		req.getRequestDispatcher("index.jsp").forward(req, resp);
	}

#方式5:通过springmvc实现重定向与转发(没有视图解析器)
重定向与转发的区别
地址栏里的地址没有改变的话,是转发;改变了则是重定向。

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public String hello(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		//转发方式1
		//return "index.jsp";
		//转发方式2
		return "forward:index.jsp";
	}

重定向

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public String hello(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		//转发方式1
		//return "index.jsp";
		//转发方式2
		//return "forward:index.jsp";
		//重定向(地址栏会改变)
		return "redirect:index.jsp";
	}

#方式6:通过springmvc实现重定向与转发(有视图解析器)

	@RequestMapping(value="/hello",method= RequestMethod.GET)
	public String hello(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
		//转发方式1(有视图解析器)
		//return "hello";
		//重定向(注意:重定向是不需要使用视图解析器的)
		return "redirect:index.jsp";
	}
共有 人打赏支持
粉丝 87
博文 438
码字总数 222864
×
求是科技
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: