Spring MVC - 模型接口详解

Spring Web model-view-controller (MVC) 是一个用于构建 J2EE Web 应用程序的开源框架。它基于 Model-View-Controller 设计模式,并实现了核心 Spring 框架的基本特性——依赖注入。它是围绕一个 DispatcherServlet 设计的,该 Servlet 将请求分发给处理器,并具有可配置的处理器映射、视图解析、语言环境和主题解析以及支持文件上传等功能。在 MVC 框架中,M 代表 Model(模型)—— 用于处理数据,V 代表 View(视图)—— 用于向用户展示数据,C 代表 Controller(控制器)—— 包含处理用户输入的实际业务逻辑。

Spring Framework 提供了一个名为 Model(I) 的接口来处理数据。它定义了模型属性的占位符,主要用于向模型添加属性。它也用于在 Spring MVC 应用程序的视图和控制器之间传输数据。Model 接口位于 org.springframework.ui 包中。它充当一个数据容器,包含应用程序的数据。存储的数据可以是任何形式,例如 String、Object、来自数据库的数据等。

Model(I) 中可用的方法

以下是 Model(I) 中可用的方法。

1) addAttribute

它将在提供的名称下添加指定的属性。

**Model addAttribute(String attributeName,**

**                   @Nullable**

**                   Object attributeValue)**
                   
attributeName - 模型属性的名称 - 永远不能为 null
attributeValue - 模型属性的值 - 可以为 null

2) addAttribute

它使用生成的名称将指定的属性添加到此 Map 中。

**Model addAttribute(Object attributeValue)**

attributeValue - 模型属性的值 - 永远不能为 null

3) addAllAttributes

将指定 Collection 中的所有属性复制到此 Map 中,并对每个元素使用属性名称生成。

**Model addAllAttributes(Collection attributeValues)**

attributeValues - 模型属性值

4) addAllAttributes

将所提供的 Map 中的所有属性复制到此 Map 中。

**Model addAllAttributes(Map attributes)**

5) mergeAttributes

将所提供的 Map 中的所有属性复制到此 Map 中,现有的同名对象优先,也就是说,它们不会被替换。

**Model mergeAttributes(Map attributes)**

6) containsAttribute

检查此模型是否包含给定名称的属性?

**boolean containsAttribute(String attributeName)**

attributeName - 模型属性的名称 - 不能为 null
它返回值 true/false。

7) getAttribute

返回指定名称的属性值(如果存在)。

**@Nullable**

**Object getAttribute(String attributeName)**

attributeName - 模型属性的名称 - 不能为 null
它返回相应的属性值。如果没有,则返回 null。

8) asMap

将当前的模型属性集作为 Map 返回。

**Map asMap()**

Spring MVC 应用程序

我们将在 Spring Tool Suite (STS) 中创建一个简单的 Spring MVC 应用程序,演示如何使用 Model 对象来保存表单数据。

创建应用程序的步骤:

  • 在 Spring Tool Suite 中创建一个 Spring MVC 项目。
  • 在 STS 中,在根据开发人员的选择创建项目时,它将下载所有必需的 maven 依赖项、*.jar 和 lib 文件,并提供一个嵌入式服务器。
  • 我们可以看到所有必需的依赖项都可在 ‘pom.xml‘ 文件中找到。
  • 创建一个 Bean 类、Controller 类和 JSP 视图页面。
  • 下面是创建 .java 和 .jsp 文件后 Spring MVC 项目的最终项目结构。

!Project StructureProject Structure

实现:

需要创建的文件如下:

  • Details.java – Bean 类 – 定义字段的属性以及属性的 getter/setter 方法。
  • DetailsController.java – Controller 类 – 处理用户请求并生成输出。
  • details.jsp – 用于与用户交互以获取输入的 JSP 文件。
  • detailsSummary.jsp – 用于在处理输入后向用户显示输出的 JSP 文件。

1) Details.java 文件:

Java


CODEBLOCK_331ee46c

‘Details‘ 类

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/20948.html
点赞
0.00 平均评分 (0% 分数) - 0