public class ModelAndView extends Object
Represents a model and view returned by a handler, to be resolved by a DispatcherPortlet. 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.
DispatcherPortlet
,
ViewResolver
,
HandlerAdapter
,
Controller
Constructor and Description |
---|
ModelAndView()
Default constructor for bean-style usage: populating bean
properties instead of passing in constructor arguments.
|
ModelAndView(Object view)
Convenient constructor when there is no model data to expose.
|
ModelAndView(Object view,
Map<String,?> model)
Create a new ModelAndView given a View object and a model.
|
ModelAndView(Object view,
String modelName,
Object modelObject)
Convenient constructor to take a single model object.
|
ModelAndView(String viewName)
Convenient constructor when there is no model data to expose.
|
ModelAndView(String viewName,
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.
|
Modifier and Type | Method and Description |
---|---|
ModelAndView |
addAllObjects(Map<String,?> modelMap)
Add all attributes contained in the provided Map to the model.
|
ModelAndView |
addObject(Object attributeValue)
Add an attribute to the model using parameter name generation.
|
ModelAndView |
addObject(String attributeName,
Object attributeValue)
Add an attribute to the model.
|
void |
clear()
Clear the state of this ModelAndView object.
|
Map<String,Object> |
getModel()
Return the model map.
|
protected Map<String,Object> |
getModelInternal()
Return the model map.
|
ModelMap |
getModelMap()
Return the underlying
ModelMap instance (never null ). |
Object |
getView()
Return the View object, or
null if we are using a view name
to be resolved by the DispatcherPortlet via a ViewResolver. |
String |
getViewName()
Return the view name to be resolved by the DispatcherPortlet
via a ViewResolver, or
null if we are using a view object. |
boolean |
hasView()
Indicate whether or not this
ModelAndView has a view, either
as a view name or as a direct view instance. |
boolean |
isEmpty()
Return whether this ModelAndView object is empty,
i.e.
|
boolean |
isReference()
Return whether we use a view reference, i.e.
|
void |
setView(Object view)
Set a View object for this ModelAndView.
|
void |
setViewName(String viewName)
Set a view name for this ModelAndView, to be resolved by the
DispatcherPortlet via a ViewResolver.
|
String |
toString()
Return diagnostic information about this model and view.
|
boolean |
wasCleared()
Return whether this ModelAndView object is empty as a result of a call to
clear()
i.e. |
public ModelAndView()
setView(Object)
,
setViewName(String)
public ModelAndView(String viewName)
addObject
.viewName
- name of the View to render, to be resolved
by the DispatcherPortlet's ViewResolveraddObject(java.lang.String, java.lang.Object)
public ModelAndView(Object view)
addObject
.view
- View object to render (usually a Servlet MVC View object)addObject(java.lang.String, java.lang.Object)
public ModelAndView(String viewName, Map<String,?> model)
viewName
- name of the View to render, to be resolved
by the DispatcherPortlet's ViewResolvermodel
- Map of model names (Strings) to model objects
(Objects). Model entries may not be null
, but the
model Map may be null
if there is no model data.public ModelAndView(Object view, Map<String,?> model)
view
- View object to render (usually a Servlet MVC View object)model
- Map of model names (Strings) to model objects
(Objects). Model entries may not be null
, but the
model Map may be null
if there is no model data.public ModelAndView(String viewName, String modelName, Object modelObject)
viewName
- name of the View to render, to be resolved
by the DispatcherPortlet's ViewResolvermodelName
- name of the single entry in the modelmodelObject
- the single model objectpublic ModelAndView(Object view, String modelName, Object modelObject)
view
- View object to render (usually a Servlet MVC View object)modelName
- name of the single entry in the modelmodelObject
- the single model objectpublic void setViewName(String viewName)
public String getViewName()
null
if we are using a view object.public void setView(Object view)
The given View object will usually be a Servlet MVC View object. This is nevertheless typed as Object to avoid a Servlet API dependency in the Portlet ModelAndView class.
public Object getView()
null
if we are using a view name
to be resolved by the DispatcherPortlet via a ViewResolver.public boolean hasView()
ModelAndView
has a view, either
as a view name or as a direct view instance.public boolean isReference()
true
if the view has been specified via a name to be resolved by the
DispatcherPortlet via a ViewResolver.protected Map<String,Object> getModelInternal()
null
.
Called by DispatcherPortlet for evaluation of the model.public ModelMap getModelMap()
ModelMap
instance (never null
).public Map<String,Object> getModel()
null
.
To be called by application code for modifying the model.public ModelAndView addObject(String attributeName, Object attributeValue)
attributeName
- name of the object to add to the modelattributeValue
- object to add to the model (never null
)ModelMap.addAttribute(String, Object)
,
getModelMap()
public ModelAndView addObject(Object attributeValue)
attributeValue
- the object to add to the model (never null
)ModelMap.addAttribute(Object)
,
getModelMap()
public ModelAndView addAllObjects(Map<String,?> modelMap)
modelMap
- a Map of attributeName -> attributeValue pairsModelMap.addAllAttributes(Map)
,
getModelMap()
public void clear()
Can be used to suppress rendering of a given ModelAndView object
in the postHandleRender
method of a HandlerInterceptor.
public boolean isEmpty()
public boolean wasCleared()
clear()
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 to clear()
.clear()