Package org.springframework.web.servlet
Class ModelAndView
java.lang.Object
org.springframework.web.servlet.ModelAndView
Holder for both Model and View in the web MVC framework.
Note that these are entirely distinct. This class merely holds
both to make it possible for a controller to return both model
and view in a single return value.
Represents a model and view returned by a handler, to be resolved by a DispatcherServlet. The view can take the form of a String view name which will need to be resolved by a ViewResolver object; alternatively a View object can be specified directly. The model is a Map, allowing the use of multiple objects keyed by name.
- Author:
- Rod Johnson, Juergen Hoeller, Rob Harrop, Rossen Stoyanchev
- See Also:
-
Constructor Summary
ConstructorDescriptionDefault constructor for bean-style usage: populating bean properties instead of passing in constructor arguments.ModelAndView
(@Nullable String viewName, @Nullable Map<String, ?> model, @Nullable HttpStatusCode status) Create a new ModelAndView given a view name, model, and HTTP status.ModelAndView
(String viewName) Convenient constructor when there is no model data to expose.ModelAndView
(String viewName, @Nullable Map<String, ?> model) Create a new ModelAndView given a view name and a model.ModelAndView
(String viewName, String modelName, Object modelObject) Convenient constructor to take a single model object.ModelAndView
(String viewName, HttpStatusCode status) Create a new ModelAndView given a view name and HTTP status.ModelAndView
(View view) Convenient constructor when there is no model data to expose.ModelAndView
(View view, @Nullable Map<String, ?> model) Create a new ModelAndView given a View object and a model.ModelAndView
(View view, String modelName, Object modelObject) Convenient constructor to take a single model object. -
Method Summary
Modifier and TypeMethodDescriptionaddAllObjects
(@Nullable Map<String, ?> modelMap) Add all attributes contained in the provided Map to the model.Add an attribute to the model using parameter name generation.Add an attribute to the model.void
clear()
Clear the state of this ModelAndView object.getModel()
Return the model map.Return the model map.Return the underlyingModelMap
instance (nevernull
).Return the configured HTTP status for the response, if any.getView()
Return the View object, ornull
if we are using a view name to be resolved by the DispatcherServlet via a ViewResolver.Return the view name to be resolved by the DispatcherServlet via a ViewResolver, ornull
if we are using a View object.boolean
hasView()
Indicate whether thisModelAndView
has a view, either as a view name or as a directView
instance.boolean
isEmpty()
Return whether this ModelAndView object is empty, i.e.boolean
Return whether we use a view reference, i.e.void
setStatus
(@Nullable HttpStatusCode status) Set the HTTP status to use for the response.void
Set a View object for this ModelAndView.void
setViewName
(@Nullable String viewName) Set a view name for this ModelAndView, to be resolved by the DispatcherServlet via a ViewResolver.toString()
Return diagnostic information about this model and view.boolean
Return whether this ModelAndView object is empty as a result of a call toclear()
i.e.
-
Constructor Details
-
ModelAndView
public ModelAndView()Default constructor for bean-style usage: populating bean properties instead of passing in constructor arguments.- See Also:
-
ModelAndView
Convenient constructor when there is no model data to expose. Can also be used in conjunction withaddObject
.- Parameters:
viewName
- name of the View to render, to be resolved by the DispatcherServlet's ViewResolver- See Also:
-
ModelAndView
Convenient constructor when there is no model data to expose. Can also be used in conjunction withaddObject
.- Parameters:
view
- the View object to render- See Also:
-
ModelAndView
Create a new ModelAndView given a view name and a model.- Parameters:
viewName
- name of the View to render, to be resolved by the DispatcherServlet's ViewResolvermodel
- a Map of model names (Strings) to model objects (Objects). Model entries may not benull
, but the model Map may benull
if there is no model data.
-
ModelAndView
Create a new ModelAndView given a View object and a model. Note: the supplied model data is copied into the internal storage of this class. You should not consider to modify the supplied Map after supplying it to this class- Parameters:
view
- the View object to rendermodel
- a Map of model names (Strings) to model objects (Objects). Model entries may not benull
, but the model Map may benull
if there is no model data.
-
ModelAndView
Create a new ModelAndView given a view name and HTTP status.- Parameters:
viewName
- name of the View to render, to be resolved by the DispatcherServlet's ViewResolverstatus
- an HTTP status code to use for the response (to be set just prior to View rendering)- Since:
- 4.3.8
-
ModelAndView
public ModelAndView(@Nullable String viewName, @Nullable Map<String, ?> model, @Nullable HttpStatusCode status) Create a new ModelAndView given a view name, model, and HTTP status.- Parameters:
viewName
- name of the View to render, to be resolved by the DispatcherServlet's ViewResolvermodel
- a Map of model names (Strings) to model objects (Objects). Model entries may not benull
, but the model Map may benull
if there is no model data.status
- an HTTP status code to use for the response (to be set just prior to View rendering)- Since:
- 4.3
-
ModelAndView
Convenient constructor to take a single model object.- Parameters:
viewName
- name of the View to render, to be resolved by the DispatcherServlet's ViewResolvermodelName
- name of the single entry in the modelmodelObject
- the single model object
-
ModelAndView
Convenient constructor to take a single model object.- Parameters:
view
- the View object to rendermodelName
- name of the single entry in the modelmodelObject
- the single model object
-
-
Method Details
-
setViewName
Set a view name for this ModelAndView, to be resolved by the DispatcherServlet via a ViewResolver. Will override any pre-existing view name or View. -
getViewName
Return the view name to be resolved by the DispatcherServlet via a ViewResolver, ornull
if we are using a View object. -
setView
Set a View object for this ModelAndView. Will override any pre-existing view name or View. -
getView
Return the View object, ornull
if we are using a view name to be resolved by the DispatcherServlet via a ViewResolver. -
hasView
public boolean hasView()Indicate whether thisModelAndView
has a view, either as a view name or as a directView
instance. -
isReference
public boolean isReference()Return whether we use a view reference, i.e.true
if the view has been specified via a name to be resolved by the DispatcherServlet via a ViewResolver. -
getModelInternal
Return the model map. May returnnull
. Called by DispatcherServlet for evaluation of the model. -
getModelMap
Return the underlyingModelMap
instance (nevernull
). -
getModel
Return the model map. Never returnsnull
. To be called by application code for modifying the model. -
setStatus
Set the HTTP status to use for the response.The response status is set just prior to View rendering.
- Since:
- 4.3
-
getStatus
Return the configured HTTP status for the response, if any.- Since:
- 4.3
-
addObject
Add an attribute to the model.- Parameters:
attributeName
- name of the object to add to the model (nevernull
)attributeValue
- object to add to the model (can benull
)- See Also:
-
addObject
Add an attribute to the model using parameter name generation.- Parameters:
attributeValue
- the object to add to the model (nevernull
)- See Also:
-
addAllObjects
Add all attributes contained in the provided Map to the model.- Parameters:
modelMap
- a Map of attributeName → attributeValue pairs- See Also:
-
clear
public void clear()Clear the state of this ModelAndView object. The object will be empty afterwards.Can be used to suppress rendering of a given ModelAndView object in the
postHandle
method of a HandlerInterceptor. -
isEmpty
public boolean isEmpty()Return whether this ModelAndView object is empty, i.e. whether it does not hold any view and does not contain a model. -
wasCleared
public boolean wasCleared()Return whether this ModelAndView object is empty as a result of a call toclear()
i.e. whether it does not hold any view and does not contain a model.Returns
false
if any additional state was added to the instance after the call toclear()
.- See Also:
-
toString
Return diagnostic information about this model and view.
-