zoukankan      html  css  js  c++  java
  • SpringMVC框架如何实现请求转发和重定向呢?

    跳转的方式

    • 请求转发
    • 重定向

    案例实操

    Springmvc 默认采用服务器内部转发的形式展示页面信息。同样也支持重定向 页面。

    重定向

    重定向到 jsp 中文会出现乱码

    /** 
    
    * 重定向到 jsp 中文会出现乱码 
    
    */ 
    
    @RequestMapping("/queryView1") 
    
    public String queryView1(){ 
    
    	return "redirect:v1.jsp?a=xxx&b=123456"; 
    
    } 
    

    重定向到 jsp 中文乱码解决

    /** 
    
    * 重定向到 jsp 中文乱码解决 
    
    */ 
    
    @RequestMapping("/queryView3") 
    
    public String queryView3(RedirectAttributes attr){ 
    
        attr.addAttribute("a", "xxx"); 
    
        attr.addAttribute("b", "xxx"); 
    
    	return "redirect:v1.jsp"; 
    
    } 
    

    重定向到 jsp ModelAndView1

    /** 
    
    * 重定向到 jsp ModelAndView1
    
    */ 
    
    @RequestMapping("/queryView4") 
    
    public ModelAndView queryView4(RedirectAttributes attr){ 
    
        ModelAndView mv=new ModelAndView();  
    
        attr.addAttribute("a", "xxx"); 
    
        attr.addAttribute("b", "xxx"); 
    
        mv.setViewName("redirect:v1.jsp"); 
    
        return mv; 
    
    } 
    

    重定向到 jsp ModelAndView2 mv 携带参数

    /** 
    
    * 重定向到 jsp ModelAndView2 mv 携带参数 
    
    */ 
    
    @RequestMapping("/queryView5") 
    
    public ModelAndView queryView5(){ 
    
        ModelAndView mv=new ModelAndView();  
        mv.setViewName("redirect:v1.jsp"); 
    
        mv.addObject("a", "xxx"); 
    
        mv.addObject("b", "xxx"); 
    
        System.out.println("重定向。。。"); 
    
        return mv; 
    
    } 
    

    重定向到 Controller 并传递参数

    /** 
    
    * 重定向到 Controller 并传递参数 
    
    */ 
    
    @RequestMapping("/queryView6") 
    
    public String queryView6(RedirectAttributes attr){ 
    
        attr.addAttribute("a", "xxx"); 
    
        attr.addAttribute("b", "xxx"); 
    
        return "redirect:/user/queryUserById.do"; 
    
    } 
    

    重定向到 Controller modelandview

    /** 
    
    * 重定向到 Controller modelandview 
    
    * @return 
    
    */ 
    
    @RequestMapping("/queryView7") 
    
    public ModelAndView queryView7(){ 
    
        ModelAndView mv=new ModelAndView();  
    
        mv.setViewName("redirect:/user/queryUserById.do"); 
    
        mv.addObject("a", "xxx"); 
    
        mv.addObject("b", "xxx"); 
    
        return mv; 
    
    } 
    
    重定向页面值获取 ${param.a}|||${param.b} 
    

    转发到视图

    /** 
    
    * 转发到视图 
    
    */ 
    
    @RequestMapping("/queryView8") 
    
    public ModelAndView queryView8(){ 
    
        ModelAndView mv=new ModelAndView();  
    
        mv.setViewName("v1"); 
    
        mv.addObject("a", "xxx"); 
    
        mv.addObject("b", "xxx"); 
    
        return mv; 
    
    } 
    

    请求转发

    /** 
    
    * 转发到 controller 
    
    */ 
    
    @RequestMapping("/queryView9") 
    
    public ModelAndView queryView9(HttpServletRequest request){ 
    
        ModelAndView mv=new ModelAndView();  
    
        mv.setViewName("forward:user/queryUserById2.do?a=xxx&b=xxx"); 
    
        return mv; 
    
    } 
    
    页面值获取 ${a}||${b} 
    

    扩展

    获取 request,response 对象

    对于我们的方法默认方法的参数是空的,这时候要想获取 request,response 对象如何获取?

    public ModelAndView queryUser(HttpServletRequest request,HttpServletResponse response){ 
    
        String userName= request.getParameter("userName"); 
    
        ModelAndView mv=new ModelAndView(); 
    
        mv.addObject("userName", userName); 
    
        mv.setViewName("request"); 
    
        return mv;  
    
    } 
    

    uest,HttpServletResponse response){

    String userName= request.getParameter("userName"); 
    
    ModelAndView mv=new ModelAndView(); 
    
    mv.addObject("userName", userName); 
    
    mv.setViewName("request"); 
    
    return mv;  
    

    }

  • 相关阅读:
    SQL SERVER 2012修改数据库名称(包括 db.mdf 名称的修改)
    vmware三种网络模式
    指针
    linux 中 开放端口,以及防火墙的相关命令
    数据库备份的脚本,记录下,还需优化下
    遍历 目录的几种有效办法
    转。git 乌龟的使用安装
    centos 时区正确,时间不对
    locate
    从 零开始 无差错 装好nginx+PHP
  • 原文地址:https://www.cnblogs.com/lezijie/p/13590444.html
Copyright © 2011-2022 走看看