ModelAndView和ModelMap的基本用法

tech2023-10-29  97

基本内容

ModelAndView是什么以及它的作用是什么ModelAndView的一种用法 ModelMap的基本用法区别

ModelAndView是什么以及它的作用是什么

 简单理解它是将后台返回的数据传递给View层,同时包含一个要访问的View层的URL地址

当控制器处理完请求后,通常控制器会将包含视图名称以及一些模型属性的ModelAndView对象返回给DispatcherServlet。因此,在控制器中会构造一个ModelAndView对象

ModelAndView作用 1、设置转向地址 2、将底层获取的数据进行存储(或者封装) 3、将数据传递给View

addObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据

直接return返回视图

页面用EL表达式${获取返回的参数key}

ModelAndView的一种用法

下面展示一些 相关代码片。

// springboot 自定义全局异常返回页面 // An highlighted block @ControllerAdvice public class CustomExtHandler { // @ExceptionHandler(value = Exception.class) // JsonData exceptionHandler(Exception e, HttpServletRequest request) { // // return JsonData.bulidError(-2, "服务器端出问题"); // // } @ExceptionHandler(value = Exception.class) Object exceptionHandler(Exception e, HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("error.html"); // System.out.println(e.getMessage()); modelAndView.addObject("msge",e.getMessage()); return modelAndView; } }

ModelMap的基本用法

 ModelMap对象主要是把控制方法处理数据到结果页面,也即是把结果页面上需要的数据放到

ModelMap对象中,通过modelmap中的addAttribute(Sring key,Object value)方法向页面传递,在

页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示modelmap中的数据。 ${key}

 modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方

法的返回值来设置跳转url地址别名或者物理跳转地址。

 ModelMap的实例是由spring 框架自动创建并作为控制器方法参数传入,用户无需自己创建.

下面展示一些 代码示例。

// A code block Controller中的代码 // An highlighted block @Controller @RequestMapping("freemarker") public class FreemarkerController { @Autowired private WXConfig wxConfig; @GetMapping("test") public String index(ModelMap modelMap) { //可以查询列表等 放入modelMap中 modelMap.addAttribute("name", wxConfig); //不用加后缀,因为配置文件里面已经指定了后缀 return "user/fm/index"; } }

下面展示一些 index中的代码。

// A code block var foo = 'bar'; // An highlighted block <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> freemarker整合index.html页面 <h1>${name.payAppId}</h1> 主要看这个 </body> </html>

区别

ModelMap的实例是由spring 框架自动创建并作为控制器方法参数传入,用户无需自己创建.

ModelAndView指模型和视图的集合,既包含模型 又包含视图;ModelAndView的实例是开发者自己手

动创建的

下面展示一些 ModelAndView。

// A code block var foo = 'bar'; // An highlighted block @ExceptionHandler(value = Exception.class) Object exceptionHandler(Exception e, HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("error.html"); // System.out.println(e.getMessage()); modelAndView.addObject("msge",e.getMessage()); return modelAndView; }
最新回复(0)