Spring MVC模型接口实例图解

本文概述

  • 模型接口方法
  • Spring MVC模型示例
在Spring MVC中, 该模型工作于一个包含应用程序数据的容器。在这里, 数据可以采用任何形式, 例如对象, 字符串, 数据库中的信息等。
需要将Model接口放置在应用程序的控制器部分中。 HttpServletRequest对象读取用户提供的信息, 并将其传递给Model接口。现在, 视图页面可轻松访问模型零件中的数据。
模型接口方法
Method Description
模型addAllAttributes(Collection < ?> arg) 它将提供的Collection中的所有属性添加到此Map中。
模型addAllAttributes(Map < String, ?> arg) 它将提供的Map中的所有属性添加到此Map中。
模型addAllAttribute(Object arg) 它将使用生成的名称将提供的属性添加到此Map。
模型addAllAttribute(String arg0, Object arg1) 它将属性与提供的名称绑定。
Map < String, Object> asMap() 它将当前的模型属性集作为Map返回。
模型mergeAttributes(Map < String, ?> Arg) 它将提供的Map中的所有属性添加到此Map中, 同名的现有对象优先。
布尔containsAttribute(String arg) 它指示此模型是否包含给定名称的属性
Spring MVC模型示例 让我们创建一个包含用户名和密码的登录页面。在这里, 我们使用特定的值来验证密码。
1.将依赖项添加到pom.xml
< !-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-webmvc< /artifactId> < version> 5.1.1.RELEASE< /version> < /dependency> < !-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> < dependency> < groupId> javax.servlet< /groupId> < artifactId> servlet-api< /artifactId> < version> 3.0-alpha-1< /version> < /dependency>

2.创建请求页面
在这里, 我们创建登录页面以接收用户的名称和密码。
index.jsp
< html> < body> < form action="hello"> UserName : < input type="text" name="name"/> < br> < br> Password : < input type="text" name="pass"/> < br> < br> < input type="submit" name="submit"> < /form> < /body> < /html>

3.创建控制器类
在控制器类中:
  • HttpServletRequest用于读取用户提供的HTML表单数据。
  • 该模型包含请求数据并提供给查看页面。
HelloController.java
package com.srcmini; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controllerpublic class HelloController { @RequestMapping("/hello") public String display(HttpServletRequest req, Model m) {//read the provided form dataString name=req.getParameter("name"); String pass=req.getParameter("pass"); if(pass.equals("admin")){String msg="Hello "+ name; //add a message to the modelm.addAttribute("message", msg); return "viewpage"; }else{String msg="Sorry "+ name+". You entered an incorrect password"; m.addAttribute("message", msg); return "errorpage"; } }}

4.在web.xml文件中提供控制器的条目
web.xml
< ?xml version="1.0" encoding="UTF-8"?> < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> < display-name> SpringMVC< /display-name> < servlet> < servlet-name> spring< /servlet-name> < servlet-class> org.springframework.web.servlet.DispatcherServlet< /servlet-class> < load-on-startup> 1< /load-on-startup> < /servlet> < servlet-mapping> < servlet-name> spring< /servlet-name> < url-pattern> /< /url-pattern> < /servlet-mapping> < /web-app>

5.在xml文件中定义bean
spring-servlet.xml
< ?xml version="1.0" encoding="UTF-8"?> < beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"> < !-- Provide support for component scanning --> < context:component-scan base-package="com.srcmini" /> < !--Provide support for conversion, formatting and validation --> < mvc:annotation-driven/> < bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> < property name="prefix" value="http://www.srcmini.com/WEB-INF/jsp/"> < /property> < property name="suffix" value="http://www.srcmini.com/.jsp"> < /property> < /bean> < /beans>

6.创建其他视图组件
要运行此示例, 以下视图组件必须位于WEB-INF / jsp目录中。
viewpage.jsp
< html> < body> ${message}< /body> < /html>

errorpage.jsp
< html> < body> ${message}< br> < br> < jsp:include page="/index.jsp"> < /jsp:include> < /body> < /html>

输出
Spring MVC模型接口实例图解

文章图片
Spring MVC模型接口实例图解

文章图片
Spring MVC模型接口实例图解

文章图片
Spring MVC模型接口实例图解

文章图片
Spring MVC模型接口实例图解

文章图片
【Spring MVC模型接口实例图解】下载此示例(使用Eclipse开发)

    推荐阅读