ModelAndView和ModelMap的基本用法
基本内容
- 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 {@Autowiredprivate 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;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
