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;  
    

    }

  • 相关阅读:
    Spring缓存注解@Cache使用
    Java中BigDecimal的8种舍入模式
    mysql和oracle的mybatis操作
    MyEclipse开发JAX-RS架构WebServices收发JSON数据格式
    Hibernate 常见异常
    SQL笔试题
    Map按键排序(sort by key)
    Spring+Mybatis常见问题随笔
    md5utils
    Http请求中Content-Type讲解以及在Spring MVC中的应用
  • 原文地址:https://www.cnblogs.com/lezijie/p/13590444.html
Copyright © 2011-2022 走看看