SpringMVC后端Controller页面跳转的三种方式汇总
作者:Thinkingcao
这篇文章主要介绍了SpringMVC后端Controller页面跳转的三种方式汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
一、前言
常见的Web开发中,我们在使用SpringMVC框架时,经常遇到多种不同情况下不同的返回方式,有的多种返回页面的方式,也有的是多种返回数据到前端的方式
这篇文章主要总结常见Web开发中针对不同情况返回页面的方式。
二、根据 String 字符串跳转
1、返回字符串 --- 返回jsp页面
/** * description: 返回字符串 --- 返回jsp页面,JSP通过EL表达式取值 * @author cao * @date 2019年4月10日 下午10:17 */ @RequestMapping(value={"/forwardJsp"}) public String forwardJsp(Model model){ model.addAttribute("name", "张三"); return "modules/sys/sysLogin"; }
2、返回字符串 --- 服务端转发
/** * description: 返回字符串 --- 服务端转发,JSP页面通过EL表达式取值 * @author cao * @date 2019年4月10日 下午10:20 */ @RequestMapping(value={"/forward"}) public String forward(Model model){ model.addAttribute("name", "张三"); return "forward:forwardJsp"; }
3、返回字符串 --- 客户端重定向
/** * description: 返回字符串 --- 客户端重定向 * @author cao * @date 2019年4月10日 下午10:27 */ @RequestMapping(value="/redirect") public String redirect(){ return "redirect:"+"/forward"; }
三、根据 request 或 response 进行跳转
1、返回 void --- 请求转发(request转发)
/** * description: 返回 void --- 请求转发(request转发) * @author cao * @date 2019年4月10日 下午10:26 */ @RequestMapping(value="/requestForward") public void requestForward(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ request.setAttribute("name", "请求转发(服务端转发)"); request.getRequestDispatcher("/forward").forward(request, response); }
2、返回 void --- 重定向 (response)
/** * description: 返回 void --- 重定向 (response) * @author cao * @date 2019年4月10日 下午10:29 */ @RequestMapping(value="/response") public void response(HttpServletResponse response) throws IOException{ response.sendRedirect("/forwardJsp"); }
3、返回 void --- Json字符串
/** * description: 返回 void --- Json字符串 * @author cao * @date 2019年4月10日 下午10:30 */ @RequestMapping(value="/responseJson") public void responseJson(HttpServletResponse response) throws IOException{ response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); response.getWriter().write("json串"); }
四、根据 ModelAndView 对象进行跳转
1、返回对象 ModelAndView --- 返回 jsp 页面
/** * description: 返回对象 ModelAndView --- 返回 jsp 页面 * @author cao * @date 2019年4月10日 下午10:32 */ @RequestMapping(value="/modelAndViewJsp") public ModelAndView modelAndViewJsp(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("modules/sys/sysLogin");//指定跳转的页面 modelAndView.addObject("name","李四"); //绑定传递的数据 return modelAndView; }
2、返回对象 ModelAndView --- 服务端转发
/** * description: 返回对象 ModelAndView --- 服务端转发 * @author cao * @date 2019年4月10日 下午10:37 */ @RequestMapping(value="/modelAndViewForward") public ModelAndView modelAndViewForward(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("forward:/forwardJsp"); modelAndView.addObject("name","李四"); //绑定传递的数据 return modelAndView; }
3、返回对象 ModelAndView --- 重定向
/** * description: 返回对象 ModelAndView --- 重定向 * @author cao * @date 2019年4月10日 下午10:40 */ @RequestMapping(value="/modelAndViewRedirect") public ModelAndView modelAndViewRedirect(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("redirect:/forwardJsp"); modelAndView.addObject("name","李四"); //绑定传递的数据 return modelAndView; }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。