SpringMVC响应视图和结果视图详解
作者:怪咖软妹@
这篇文章主要介绍了SpringMVC响应视图和结果视图,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
1、返回字符串,Model传输数据
/** * 返回String * @param model * @return */ @RequestMapping("/testString") public String testString(Model model){ System.out.println("testString方法执行了..."); // 模拟从数据库中查询出User对象 User user = new User(); user.setUsername("美美"); user.setPassword("123"); user.setAge(30); // model对象 model.addAttribute("user",user); return "success"; }
2、void(不经常使用)
/** * 是void * 请求转发一次请求,不用编写项目的名称 */ @RequestMapping("/testVoid") public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("testVoid方法执行了..."); // 编写请求转发的程序 // request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response); // 重定向 // response.sendRedirect(request.getContextPath()+"/index.jsp"); // 设置中文乱码 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); // 直接会进行响应 response.getWriter().print("你好"); return; }
3、返回ModelAndView完成跳转页面和传输数据
/** * 返回ModelAndView * @return */ @RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ // 创建ModelAndView对象 ModelAndView mv = new ModelAndView(); System.out.println("testModelAndView方法执行了..."); // 模拟从数据库中查询出User对象 User user = new User(); user.setUsername("小凤"); user.setPassword("456"); user.setAge(30); // 把user对象存储到mv对象中,也会把user对象存入到request对象 mv.addObject("user",user); // 跳转到哪个页面 mv.setViewName("success"); return mv; }
4、forward转发
/** * 使用关键字的方式进行转发 * @return */ @RequestMapping("/testForwardOrRedirect") public String testForwardOrRedirect(){ System.out.println("testForwardOrRedirect方法执行了..."); // 请求的转发 return "forward:/WEB-INF/pages/success.jsp"; }
5、redirect重定向
/** * 使用关键字重定向 * @return */ @RequestMapping("/testForwardOrRedirect") public String testForwardOrRedirect(){ System.out.println("testForwardOrRedirect方法执行了..."); // 重定向 return "redirect:/index.jsp"; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。