SpringMVC框架如何实现请求转发和重定向呢?

125 篇文章 1 订阅
116 篇文章 0 订阅

跳转的方式

  • 请求转发
  • 重定向

案例实操

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;  

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值