English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Interfaccia del modello Spring MVC

In Spring MVC, il modello lavora in un contenitore che contiene i dati dell'applicazione. Qui, i dati possono assumere qualsiasi forma, ad esempio oggetti, stringhe, informazioni nel database, ecc.

È necessario che Model L'interfaccia viene posizionata nella parte del controllore del computer. Applicazione. HttpServletRequest L'oggetto legge le informazioni fornite dall'utente e le trasmette a Model Interfaccia. Ora, la pagina di visualizzazione può accedere facilmente ai dati delle parti del modello.

Metodi dell'interfaccia del modello

MetodoDescrizione
Model addAllAttributes(Collection <?> arg)Aggiunge tutte le proprietà dell'insieme fornito a questo Map.
Model addAllAttributes(Map <String,?> arg)Aggiunge tutte le proprietà del Map fornito a questo Map.
Model addAllAttribute(Object arg)Aggiunge le proprietà fornite a questo Map utilizzando il nome generato.
Model addAllAttribute(String arg0, Object arg1)Lega le proprietà con il nome fornito.
Map<String, Object> asMap()Restituisce l'insieme delle proprietà del modello come Map.
Model mergeAttributes(Map<String,?> arg)Aggiunge tutte le proprietà del Map aggiunto a questo Map, con priorità ai oggetti esistenti con lo stesso nome.
boolean containsAttribute(String arg)Indica se questo modello contiene l'attributo con il nome fornito

Esempio di modello Spring MVC

Creiamo una pagina di login che contiene nome utente e password. Qui utilizziamo valori specifici per verificare la password.

1. Aggiungere le dipendenze al file 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. Creare la pagina della richiesta

Qui creiamo la pagina di login per ricevere il nome utente e la password dell'utente.

index.jsp

<html>
<body>
<form action="hello">
Nome utente: <input type="text" name="name"/> <br><br>
Password: <input type="text" name="pass"/> <br><br> 
<input type="submit" name="submit">
</form>
</body>
</html>

3. Creare la classe del controller

All'interno della classe del controller:

HttpServletRequest Utilizzato per leggere i dati del modulo HTML forniti dall'utente. ModelloContiene i dati della richiesta e li fornisce alla pagina per la visualizzazione.

HelloController.java

package com.w3codebox;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
  @RequestMapping("/hello")
  public String display(HttpServletRequest req, Model m)
  {
    //read the provided form data
    String name=req.getParameter("name");
    String pass=req.getParameter("pass");
    if(pass.equals("admin"))
    {
      String msg="Hello " + name;
      //add a message to the model
      m.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、Definire Bean nel file xml

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/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  <!-- Supporto per la scansione dei componenti -->
  <context:component-scan base-package="com.w3codebox" />
  <!--Fornisce supporto per la conversione, la formattazione e la validazione-->
  <mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>        
     </bean>
</beans>

6. Creazione di altri componenti di vista

Per eseguire questo esempio, i seguenti componenti di vista devono essere presenti nella directory 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>

Output: