================== Spring MVC数据传递 ================== 针对通过表单或超链接(URL)提交的同步请求: - 控制器方法返回String或ModelAndView类型的对象,携带目标页面的路径。 - 控制器方法如何将数据传递给目标页面? - 只有转发可以传值,重定向无法传值。 1 目标页面 /src/main/webapp/addBookSuccess.jsp: ... ...
${book} ... ... 2 返回String对象 /src/main/java/cn/tedu/springmvc/controllers/BookController.java: @Controller @RequestMapping("/BookController") public class BookController { ... @RequestMapping("/addBook") public String addBook(@RequestParam("name") String name, @RequestParam("author") String author, @RequestParam("price") double price, Model model) { System.out.println("控制器> 添加一本图书"); System.out.println("控制器> 书名:" + name); System.out.println("控制器> 作者:" + author); System.out.println("控制器> 价格:" + price); model.addAttribute("book", new Book(0, name, author, price)); return "/addBookSuccess.jsp"; } ... } 或 @Controller @RequestMapping("/BookController") public class BookController { ... @RequestMapping("/addBook") public String addBook(@RequestParam("name") String name, @RequestParam("author") String author, @RequestParam("price") double price, HttpServletRequest request) { System.out.println("控制器> 添加一本图书"); System.out.println("控制器> 书名:" + name); System.out.println("控制器> 作者:" + author); System.out.println("控制器> 价格:" + price); request.setAttribute("book", new Book(0, name, author, price)); return "/addBookSuccess.jsp"; } ... } 3 返回ModelAndView对象 /src/main/java/cn/tedu/springmvc/controllers/BookController.java: @Controller @RequestMapping("/BookController") public class BookController { ... @RequestMapping("/addBook") public ModelAndView addBook(@RequestParam("name") String name, @RequestParam("author") String author, @RequestParam("price") double price) { System.out.println("控制器> 添加一本图书"); System.out.println("控制器> 书名:" + name); System.out.println("控制器> 作者:" + author); System.out.println("控制器> 价格:" + price); return new ModelAndView("/addBookSuccess.jsp") .addObject("book", new Book(0, name, author, price)); } ... } 例程:SpringMVC