springMVC中的Model和ModelAndView的区别

1.主要区别

Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到jsp页面中;
ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称

2.例子

1)使用Model传值
[java] view plain copy
 
  1.   
 
[java] view plain copy
 
  1. @RequestMapping(value="/list-books")  
  2.     private String getAllBooks(Model model){  
  3.         logger.error("/list-books");  
  4.         List<Book> books= bookService.getAllBooks();  
  5.         model.addAttribute("books", books);  
  6.         return "BookList";  
  7.     }  
在jsp页面利${books}即可取出其中的值

2)使用ModelAndView传递值有两种方法,不同方法在jsp页面的取值方式不同,同时设置了view的名称
  1. public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,  
  2.                                          Object handler, Exception ex) {  
  3.         LibraryException le=null;  
  4.         if(ex instanceof LibraryException){  
  5.             le=(LibraryException)ex;  
  6.         }else{  
  7.             le=new LibraryException("系统未知异常!");  
  8.         }  
  9.   
  10.         ModelAndView modelAndView=new ModelAndView();  
  11.         modelAndView.addObject("exception",le.getMessage());  
  12.         modelAndView.getModel().put("exception",le.getMessage());  
  13.         modelAndView.setViewName("error");  
  14.   
  15.         return modelAndView;  
  16.     }  
jsp中${requestScope.exception1}可以取出exception1的值;

 

jsp中${exception2}可以取出exception2的值

 

posted @ 2018-05-05 11:22  噗双人狗  阅读(308)  评论(0编辑  收藏  举报