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

  • 相关阅读:
    Hidden、ViewState、ControlState 区别
    使用 CSS3 中的伪类渲染表格
    IIS与Apache
    好奇怪的问题~
    博客可长可短-UnobtrusiveValidationMode的理解
    一路走来,一些感触,一些想法
    网页中一次导出多张Excel的问题
    [Leetcode][Python]56: Merge Intervals
    [Leetcode][Python]55: Jump Game
    [Leetcode][Python]54: Spiral Matrix
  • 原文地址:https://www.cnblogs.com/shamo89/p/9948694.html
Copyright © 2020-2023  润新知