zoukankan      html  css  js  c++  java
  • springmvc跳转的几种方式

    1 请求转发

          a String形式的转发 

    //String形式的转发
    	@RequestMapping(value="/toViewByString.do")
        public String toViewByString(HttpServletRequest request){
    		request.setAttribute("name", "toString");
        	return "success";
        }

    b  ModelAndView形式的转发

    //ModelAndView形式的转发
    	@RequestMapping(value="/toViewByModelAndView.do")
        public ModelAndView toViewByModelAndView(){
    		ModelAndView mav=new ModelAndView();
    		mav.setViewName("success");
    		return mav;
        }


    c 通过forward请求转发

    //通过forward请求转发
    	@RequestMapping(value="/redirectByRuqest.do")
    	public void redirectByRuqest(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{		
    		request.getRequestDispatcher("toRedirect.do").forward(request, response);
    	}


    2 重定向

    a 路径前加redirect

     

    /**
    	  * 重定向
    	  * RedirectAttributes 是一个容器,用来储存参数
    	  * addFlashAttribute()方法设置的参数是不出现在请求的路径中的
    	  * 可以通过RequestContextUtils.getInputFlashMap(request)获取Map集合
    	  * 再通过集合的key值获取adFlashAttribute()方法设置的值
    	  * addAttribute()方法设置的参数会出现在路径的,
    	  * 可以通过request.getParameter()方法去获取addAttribute()方法设置的参数
    	  * @param request
    	  * @return
    	  */
    	@RequestMapping(value="/redirectByString.do")
        public String redirectByString(RedirectAttributes redirectAttributes){
    		redirectAttributes.addFlashAttribute("userName", "123");
    		redirectAttributes.addAttribute("password", "123");
        	return "redirect:toRedirect.do";
        }
    	 
    	
    	@RequestMapping(value="/toRedirect.do")
        public String toRedirect(HttpServletRequest request){
    		String userName=request.getParameter("userName");
    		String password=request.getParameter("password");
    		Map<String,?>params=RequestContextUtils.getInputFlashMap(request);
    		if(params!=null){
    			String pass=(String)params.get("userName");
    			System.out.println(pass);
    		}
    		
        	return "success";
        }


    b 通过modelAndView进行重定向,在路径前必须添加redirect

    /**
    	 * 重定向
    	 * 通过modelAndView进行重定向,在路径前必须添加redirect,如果要传入参数,要么放在路径的后面
    	 * 要么把参数添加到modelAndView对象中。
    	 * 如果在Java的方法里,想获取传过来的参数,用request.getParameter()方法获取即可
    	 * @return
    	 */
    	@RequestMapping(value="/redirectViewByModelAndView.do")
        public ModelAndView redirectViewByModelAndView(){
    		ModelAndView mav=new ModelAndView();
    		mav.setViewName("redirect:toRedirect.do?userName=admin");
    		mav.addObject("password", "1234");
    		//获取mav通过addObject设置的值
    		System.out.println(mav.getModel().get("password"));
    		return mav;
        }


    c 通过sendRedirect重定向

    //通过sendRedirect重定向
    	@RequestMapping(value="/redirectByResponse.do")
    	public void redirectByResponse(HttpServletRequest request,HttpServletResponse response) throws IOException{
    		response.sendRedirect("toRedirect.do?userName=test");
    	}


  • 相关阅读:
    OpenStack入门篇(八)之镜像服务Glance
    OpenStack入门篇(七)之认证服务Keystone
    OpenStack入门篇(六)之OpenStack环境准备
    OpenStack入门篇(五)之KVM性能优化及IO缓存介绍
    OpenStack入门篇(四)之KVM虚拟机介绍和管理
    OpenStack入门篇(三)之KVM介绍及安装
    OpenStack入门篇(二)之OpenStack架构
    OpenStack入门篇(一)之云计算的概念
    Linux系统运维基础管理命令总结
    TCP三次握手和四次挥手以及11种状态
  • 原文地址:https://www.cnblogs.com/t0404/p/10290982.html
Copyright © 2011-2022 走看看