• 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");
    	}


  • 相关阅读:
    挂载银行前置机Ukey到windows server2012虚拟机的操作记录
    LVS负载均衡下session共享的实现方式-持久化连接
    Centos6.9下RabbitMQ集群部署记录
    Linux下绑定网卡的操作记录
    Redis Cluster集群知识学习总结
    Redis Cluster日常操作命令梳理
    android Unable to inflate view tag without class attribute
    java / android int类型如何判空?
    Android 倒计时按钮,倒计时发送短信验证码…
    Android 自定义View
  • 原文地址:https://www.cnblogs.com/t0404/p/10290982.html
Copyright © 2020-2023  润新知