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;



    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值