当前位置: 首页 > news >正文

怎么建免费网站自己用电脑做网站服务器吗

怎么建免费网站,自己用电脑做网站服务器吗,优化什么建立生育支持,cdn网站在 Spring MVC 中#xff0c;Model, ModelMap, 和 ModelAndView 都是用来在 Controller 和 View 之间传递数据的#xff0c;但它们在使用方式和功能上有所不同。 它们的核心在于#xff1a;Spring MVC 需要知道两件事来渲染视图#xff1a;① 数据 (Model) ② 视图名称 (V…在 Spring MVC 中Model, ModelMap, 和 ModelAndView 都是用来在 Controller 和 View 之间传递数据的但它们在使用方式和功能上有所不同。 它们的核心在于Spring MVC 需要知道两件事来渲染视图① 数据 (Model) ② 视图名称 (View Name)。 下面我们详细介绍一下它们的关系和区别 Model (接口) 是什么Model 是一个接口 (org.springframework.ui.Model)。它主要用于在 Controller 方法中添加需要在 View 中展示的数据。如何工作当我们在 Controller 方法的参数中声明一个 Model 类型的参数时Spring MVC 会自动创建一个 Model 的实例通常是 ExtendedModelMap 的实例并将其传递给我们的方法。主要方法 addAttribute(String attributeName, Object attributeValue): 添加单个属性。addAttribute(Object attributeValue): 添加属性名称由类型推断。addAllAttributes(MapString, ? attributes): 添加一个 Map 中的所有属性。mergeAttributes(MapString, ? attributes): 合并一个 Map 中的属性如果键已存在则覆盖。containsAttribute(String attributeName): 检查是否存在某个属性。 视图选择当使用 Model 时Controller 方法通常返回一个 String 类型的值这个字符串就是逻辑视图名。Spring MVC 会根据这个视图名找到对应的视图进行渲染。示例Controller public class MyController {GetMapping(/showData)public String showData(Model model) {model.addAttribute(message, Hello from Model!);User user new User(John Doe, 30);model.addAttribute(user, user);return dataView; // 返回逻辑视图名} }ModelMap (类) 是什么ModelMap 是一个类 (org.springframework.ui.ModelMap)它实现了 Model 接口并且继承自 java.util.LinkedHashMap。如何工作与 Model 类似我们可以在 Controller 方法参数中声明它Spring MVC 会提供相应的实例。因为它是一个 Map所以我们可以使用所有 Map 的方法如 put(), get() 等以及 Model 接口定义的方法。与 Model 的关系ModelMap 是 Model 接口的一个具体实现。当我们使用 Model 接口时Spring MVC 内部提供的是 ModelMap或其子类 ExtendedModelMap的实例。视图选择与 Model 相同Controller 方法通常返回一个 String 类型的逻辑视图名。为什么存在 提供了 Map 的便利性如果已经有了一个 Map 对象可以直接用 addAllAttributes 或 putAll。历史原因在泛型广泛使用前ModelMap 提供了类型安全相对于直接使用 MapString, Object。 示例Controller public class MyController {GetMapping(/showDataWithModelMap)public String showDataWithModelMap(ModelMap modelMap) {modelMap.addAttribute(message, Hello from ModelMap!);modelMap.put(anotherMessage, Using put method!); // Map 的方法User user new User(Jane Doe, 25);modelMap.addAttribute(user, user);return dataView; // 返回逻辑视图名} }ModelAndView (类) 是什么ModelAndView 是一个类 (org.springframework.web.servlet.ModelAndView)它是一个容器同时持有 模型数据 (Model) 和 视图信息 (View)。如何工作与 Model 和 ModelMap 不同ModelAndView 对象是由我们在 Controller 方法中创建并返回的。我们不需要将其声明为方法参数虽然也可以但不常见。主要方法/构造函数 ModelAndView(String viewName)ModelAndView(String viewName, MapString, ? model)ModelAndView(String viewName, String modelName, Object modelObject)addObject(String attributeName, Object attributeValue): 添加模型数据。setViewName(String viewName): 设置逻辑视图名。setView(View view): 直接设置一个 View 对象。getModel(): 获取模型数据 (返回一个 Map)。getModelMap(): 获取模型数据 (返回一个 ModelMap)。 视图选择视图信息直接包含在 ModelAndView 对象中。示例Controller public class MyController {GetMapping(/showDataWithModelAndView)public ModelAndView showDataWithModelAndView() {ModelAndView mav new ModelAndView();mav.setViewName(dataView); // 设置逻辑视图名mav.addObject(message, Hello from ModelAndView!);User user new User(Peter Pan, 100);mav.addObject(user, user);return mav; // 返回 ModelAndView 对象} }关系总结 Model 是一个接口定义了添加数据到模型的基本操作。ModelMap 是 Model 接口的一个实现它本身是一个 LinkedHashMap提供了 Map 的操作便利性。ModelAndView 是一个独立的类它封装了模型数据内部使用 ModelMap 或类似的 Map 结构来存储数据和视图信息。 区别总结 特性Model (接口)ModelMap (类)ModelAndView (类)类型接口类 (实现 Model, 继承 LinkedHashMap)类主要职责仅传递数据仅传递数据 (以 Map 形式)传递数据 和 指定视图如何获取实例作为 Controller 方法参数 (Spring 注入)作为 Controller 方法参数 (Spring 注入)在 Controller 方法中 new 出来并返回视图指定Controller 方法返回 String 视图名Controller 方法返回 String 视图名视图名或 View 对象在 ModelAndView 内部设置返回值String (逻辑视图名)String (逻辑视图名)ModelAndView 对象本身灵活性专注于数据视图名解耦专注于数据视图名解耦有 Map 特性数据和视图紧密耦合在一个对象中 使用场景 Model (推荐) 这是目前最常用和推荐的方式。当 Controller 方法的主要职责是准备数据并且视图名是固定的或者可以通过简单的字符串返回时。代码更简洁职责分离更清晰方法只关注数据返回类型指明视图。 ModelMap 如果需要 Map 的特定方法或者想强调模型数据是一个 Map 结构时。实际上由于 Model 接口已经足够强大并且 Spring 内部通常用 ModelMap 的子类 ExtendedModelMap 来实现 Model所以直接使用 Model 接口通常更好。 ModelAndView 当 Controller 方法需要根据逻辑动态决定返回哪个视图或者需要返回一个具体的 View 对象时。在一些较早的 Spring MVC 代码中比较常见。当你想将数据和视图信息明确的捆绑在一起返回时。如果你需要返回 null 来指示不渲染任何视图例如在某些拦截器或特殊处理中ModelAndView 也可以做到返回 null 的 ModelAndView。 Spring MVC 实践建议 优先使用 Model 作为方法参数并让 Controller 方法返回 String 类型的逻辑视图名。这种方式更简洁也更符合 Spring MVC 的设计即 Controller 负责处理请求、准备数据并将逻辑视图名交给 ViewResolver 去解析。 只有在确实需要将模型和视图紧密绑定或者需要动态决定视图对象本身时考虑使用 ModelAndView。 ModelMap 的使用场景相对较少通常 Model 接口就能满足需求。
http://www.zqtcl.cn/news/201104/

相关文章:

  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则
  • dede多个网站怎么做wordpress+adsense主题
  • 如何做网站营销江苏网站建设系统服务
  • 公司网站需要备案网络设置怎么设置
  • 网站正在建设中中文模板廊坊网站优化
  • 8免费网站建站网页网站模板
  • 网站开发算法面试滨州建设工程备案网站
  • 扬州网站开发个人做美食视频网站
  • 网站建设属于技术服务吗关于网站建设
  • 网站建设推广好处西安工业设计公司
  • 深圳宝安p2p网站系统的建设百度广告联盟标识
  • 企业网站备案怎么填写东莞市场监督管理局官网
  • 网站建站网站91955内蒙古建设集团招聘信息网站
  • 巴中建设厅网站电话seo是网络优化吗
  • 中国做投资的网站做网站的公司怎么推广
  • 专业的广州微网站建设移动应用开发干什么的
  • 网站运营有什么用常熟智能网站开发
  • 如何组建做网站的团队绍兴网站建设推广
  • 资讯类响应式网站模板深圳网站建设培训机构
  • 电子商务网站功能设计3d动画制作过程
  • 随机网站生成器win7asp+sql server 2008做网站
  • 金本网站建设设计江苏建筑业网
  • 校园网站建设的作用淄博网站建设网站推广优化
  • 域名过期了怎么办怎么找回网站校友录网站开发设计
  • 医疗 企业 网站建设seo网络优化是什么工作
  • e时代速递搜索引擎网站建设aso关键词搜索优化
  • 产品单页营销型网站模板龙华网站建设深圳信科
  • 建网站平台要多少钱投资公司取名字大全
  • 建设网站需要哪些设备重庆本地建站