Is the Model in Spring MVC the same of MVC pattern?
Se intendi org.springframework.ui.Model
, quindi no, non lo è.
In MVC, il modello è il luogo in cui vive la tua attività. Il modello in MVC gestisce i dati e le regole di dominio dell'applicazione.
In primavera, il modello a cui si fa riferimento è un supporto per i dati visualizzati dalla vista. È fondamentalmente una mappa glorificata sotto.
Una vista è responsabile del rendering del modello. Il modo in cui le viste accedono ai dati del modello non è la stessa in tutte le viste supportate da Spring (JSP, FreeMarker, Portlet, ecc.), Quindi è necessario un modo generico per esporre tali dati a qualsiasi vista, per astrarre la tecnologia di visualizzazione.
Prima della primavera 2.5.1 hai inviato questi dati come una mappa (Spring ha un org.springframework.ui.ModelMap
con vari metodi di supporto su di esso ... ma ancora una mappa) poi è stata aggiunta l'interfaccia org.springframework.ui.Model
che è un'alternativa più semantica alla stessa cosa (ha
un'implementazione org.springframework.ui.ExtendedModelMap
che allo stesso tempo è figlia di ModelMap).
Dalla documentazione ModelMap (sottolineatura mia):
Implementation of {@link java.util.Map} for use when building model data for use with UI tools. Supports chained calls and generation of model attribute names.
This class serves as generic model holder for both Servlet and Portlet MVC, but is not tied to either of those. Check out the {@link Model} interface for a Java-5-based interface variant that serves the same purpose.
Quindi, questa interfaccia del modello Spring è solo un contenitore di attributi valore-chiave per il rendering da rendere. Si chiama Modello molto probabilmente perché si tratta di un framework MVC con controller e viste e modelli (ad esempio MVC è l'acronimo di Model View Controller, non Map View Controller, quindi le persone si riferiscono meglio a tale denominazione).