Controller.java
@Controller // 表示是控制器 public class ResultController { // 1.视图解析器方式,需要配置视图解析器 @RequestMapping("/result1") // 设置映射 public ModelAndView result1(HttpServletRequest req, HttpServletResponse resp) { ModelAndView mv = new ModelAndView(); mv.addObject("msg", "hello result 1"); // 转发,不设置名字就和@RequestMapping()里的名字一样 mv.setViewName("hello1"); // 重定向 后缀加不加都可以, 带参数必须加上 // mv.setViewName("redirect:hello1.jsp"); return mv; } // 2.HttpServlet API方式,不需要配置视图解析器 @RequestMapping("/result2") public void result2(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setAttribute("msg", "hello result 2-2"); // 重定向,带参数不能有空格? resp.sendRedirect("hello2-1.jsp?msg=hello-result-2-2"); // 转发 // req.getRequestDispatcher("hello2-2.jsp").forward(req, resp); } // 3.SpringMVC方式,不需要配置视图解析器 @RequestMapping("/result3") public String result3(RedirectAttributes attr) { // 转发 1.不传参数,不能加后缀,但需视图解析器。2.要传参数,必须加上后缀 // return "hello3-1"; // return "hello3-1.jsp?msg=hello result 3-1"; // 两种一样,这种要后缀 // return "forward:hello3-1.jsp?msg=hello result 3-1"; // 重定向 这种要后缀,还需在xml文件加<mvc:annotation-driven /> // attr.addAttribute("msg", "hello result 3-2"); return "redirect:hello3-2.jsp"; } }
springmvc.xml配置
略(配置视图解析器)