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的值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM