Spring中的Model

1.场景分析

    在许多实际项目需求中,后台要从控制层直接返回前端所需的数据,这时Model大家族就派上用场了。

2.三者区别

①Model

Model是一个接口,它的实现类为ExtendedModelMap,继承ModelMap类

public class ExtendedModelMap extends ModelMap implements Model
②ModelMap

ModelMap继承LinkedHashMap,spring框架自动创建实例并作为controller的入参,用户无需自己创建

public class ModelMap extends LinkedHashMap<String,Object>
③ModelAndView

顾名思义,ModelAndView指模型和视图的集合,既包含模型 又包含视图;ModelAndView的实例是开发者自己手动创建的,这也是和ModelMap主要不同点之一;

3.实例说明

准备工作:springboot工程集成了velocity模版引擎,暂不会的伙伴看看笔者velocity集成的博客:http://blog.csdn.net/zhangxing52077/article/details/73194948,恕不赘述。

①Model的用法

spring自动为Model创建实例,并作为controller的入参

@RequestMapping("hello")
public String testVelocity(Model model,String name){
    model.addAttribute("name",name);
    return "hello";
}

测试效果:


②Model与model用法差不多

@RequestMapping("hello")
public String testVelocity(ModelMap model,String name){
    model.addAttribute("name",name);
    return "hello";
}
这里效果跟Model运行效果一样

③ModelAndView的用法

@RequestMapping("model")
public ModelAndView testModel(String name) {
    //构建ModelAndView实例,并设置跳转地址
    ModelAndView view = new ModelAndView("test");
    //将数据放置到ModelAndView对象view,第二个参数可以是任何java类型
    view.addObject("name",name);
    //返回ModelAndView对象view
    return view;
}

设置view跳转地址

ModelAndView view = new ModelAndView("test");

当然还可以这样设置跳转地址

ModelAndView view = new ModelAndView();
view.setViewName("test");

其中的test表示templates中的test.html,springboot默认的模版文件一般都在resources/templates下


设置view的model

view.addObject("name","zhangxing,hello");
运行效果:

文章转自https://blog.csdn.net/zhangxing52077/article/details/75193948

### 回答1: 在SpringModel包含了应用程序的数据模型。它用于在控制器和视图之间传递数据。当控制器处理请求时,它将数据存储在Model,并将其传递给视图来呈现响应。这使得控制器能够将业务逻辑和数据提供给视图,以便生成HTML页面或其他类型的响应。Model也可用于在重定向期间传递数据。在这种情况下,数据存储在HTTP会话,并在重定向后提供给控制器。总而言之,Model是用于传递数据和状态的容器,用于在应用程序的组件之间进行通信。 ### 回答2: 在Spring框架model包主要起到数据封装和传递的作用。 首先,model的类通常用于封装业务数据。在Spring框架,我们通常将业务逻辑和数据从视图层分离出来,通过model的类封装数据并提供相应的方法给其他业务组件使用。这样做的好处是可以更好地实现数据的封装,提高代码的可读性和可维护性。 其次,model的类还可以用于传递数据。在Spring MVC,Controller层接收到用户请求后,可以通过model的类将数据传递给相应的视图层展示给用户。使用model的类进行数据传递的好处是可以灵活地控制需要传递的数据,并在视图层进行相应的处理和展示。 此外,model的类还可以与数据库进行交互,实现数据的查询、更新等操作。在Spring框架,我们通常使用ORM框架如Hibernate或MyBatis来操作数据库,model的类可以作为数据库表的映射对象,并提供相应的方法进行数据库操作,如查询数据、更新数据等。 总之,Springmodel包在整个框架起到了数据封装和传递的重要作用,可以将业务逻辑和数据进行有效的分离,提高代码的可读性和可维护性,同时也方便了数据的传递和数据库操作。 ### 回答3: 在Springmodel包是用来封装数据的。它主要用于存储和传递数据到视图层,并且通过视图层将数据展示给用户。 Model的类通常被称为模型对象或视图模型。它们是一个简单的POJO类,通常包含与视图层显示的数据相关的属性和相应的getter和setter方法。这些类可以存储从数据库、外部API或其他数据源检索的数据,并将其传递给视图层进行展示。 使用model对象的一个重要特点是可以将多个数据对象封装到一个model对象,以便在视图层以更直观的方式访问和使用数据。这可以提高代码的可读性和维护性。同时,model对象还可以用来接收来自用户的输入数据,并在提交表单后将其传递给控制器进行处理。 在Spring MVCmodel包还提供了一些特殊的接口(如ModelModelMap和ModelAndView),用于加强对模型数据的管理和传递。这些接口允许控制器将数据存储在model对象,并将其传递给视图层进行显示。 总结而言,Springmodel包的主要作用是封装和传递数据到视图层。它提供了一种简单而有效的方式来管理模型数据,使得代码的可读性和可维护性都得到提高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值