springMVC中的Model和ModelAndView的区别
1.主要区别
Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到jsp页面中; ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称
2.例子
1)使用Model传值
- @RequestMapping(value="/list-books")
- private String getAllBooks(Model model){
- logger.error("/list-books");
- List<Book> books= bookService.getAllBooks();
- model.addAttribute("books", books);
- return "BookList";
- }
在jsp页面利${books}即可取出其中的值
2)使用ModelAndView传递值有两种方法,不同方法在jsp页面的取值方式不同,同时设置了view的名称
- public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
- Object handler, Exception ex) {
- LibraryException le=null;
- if(ex instanceof LibraryException){
- le=(LibraryException)ex;
- }else{
- le=new LibraryException("系统未知异常!");
- }
- ModelAndView modelAndView=new ModelAndView();
- modelAndView.addObject("exception",le.getMessage());
- modelAndView.getModel().put("exception",le.getMessage());
- modelAndView.setViewName("error");
- return modelAndView;
- }
jsp中${requestScope.exception1}可以取出exception1的值;
jsp中${exception2}可以取出exception2的值