Class ModelAndViewContainer
HandlerMethodArgumentResolvers
and
HandlerMethodReturnValueHandlers
during the course of invocation of
a controller method.
The setRequestHandled(boolean)
flag can be used to indicate the request
has been handled directly and view resolution is not required.
A default Model
is automatically created at instantiation.
An alternate model instance may be provided via setRedirectModel(org.springframework.ui.ModelMap)
for use in a redirect scenario. When setRedirectModelScenario(boolean)
is set
to true
signaling a redirect scenario, the getModel()
returns the redirect model instead of the default model.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddAllAttributes
(Map<String, ?> attributes) Copy all attributes to the underlying model.addAttribute
(Object value) Add the supplied attribute to the underlying model.addAttribute
(String name, Object value) Add the supplied attribute to the underlying model.boolean
containsAttribute
(String name) Whether the underlying model contains the given attribute name.Return the "default" model created at instantiation.getModel()
Return the model to use -- either the "default" or the "redirect" model.Return theSessionStatus
instance to use that can be used to signal that session processing is complete.Return the configured HTTP status, 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 a View object is set.boolean
isBindingDisabled
(String name) Whether binding is disabled for the given model attribute.boolean
Whether the request has been handled fully within the handler.boolean
Whether the view is a view reference specified via a name to be resolved by the DispatcherServlet via a ViewResolver.mergeAttributes
(Map<String, ?> attributes) Copy attributes in the suppliedMap
with existing objects of the same name taking precedence (i.e.removeAttributes
(Map<String, ?> attributes) Remove the given attributes from the model.void
setBinding
(String attributeName, boolean enabled) Register whether data binding should occur for a corresponding model attribute, corresponding to an@ModelAttribute(binding=true/false)
declaration.void
setBindingDisabled
(String attributeName) Programmatically register an attribute for which data binding should not occur, not even for a subsequent@ModelAttribute
declaration.void
setIgnoreDefaultModelOnRedirect
(boolean ignoreDefaultModelOnRedirect) Deprecated.as of 6.0 without a replacement; once removed, the default model will always be ignored on redirectvoid
setRedirectModel
(ModelMap redirectModel) Provide a separate model instance to use in a redirect scenario.void
setRedirectModelScenario
(boolean redirectModelScenario) Whether the controller has returned a redirect instruction, e.g.void
setRequestHandled
(boolean requestHandled) Whether the request has been handled fully within the handler, e.g.void
setStatus
(HttpStatusCode status) Provide an HTTP status that will be passed on to with theModelAndView
used for view rendering purposes.void
Set a View object to be used by the DispatcherServlet.void
setViewName
(String viewName) Set a view name to be resolved by the DispatcherServlet via a ViewResolver.toString()
Return diagnostic information.
-
Constructor Details
-
ModelAndViewContainer
public ModelAndViewContainer()
-
-
Method Details
-
setIgnoreDefaultModelOnRedirect
@Deprecated(since="6.0") public void setIgnoreDefaultModelOnRedirect(boolean ignoreDefaultModelOnRedirect) Deprecated.as of 6.0 without a replacement; once removed, the default model will always be ignored on redirectBy default, the content of the "default" model is used both during rendering and redirect scenarios. Alternatively controller methods can declare an argument of typeRedirectAttributes
and use it to provide attributes to prepare the redirect URL.Setting this flag to
true
guarantees the "default" model is never used in a redirect scenario even if a RedirectAttributes argument is not declared. Setting it tofalse
means the "default" model may be used in a redirect if the controller method doesn't declare a RedirectAttributes argument.As of 6.0, this property is set to
true
by default. -
setViewName
Set a view name 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 a View object is set. -
setView
Set a View object to be used by the DispatcherServlet. 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. -
isViewReference
public boolean isViewReference()Whether the view is a view reference specified via a name to be resolved by the DispatcherServlet via a ViewResolver. -
getModel
Return the model to use -- either the "default" or the "redirect" model. The default model is used ifredirectModelScenario=false
or there is no redirect model (i.e. RedirectAttributes was not declared as a method argument) andignoreDefaultModelOnRedirect=false
. -
getDefaultModel
Return the "default" model created at instantiation.In general it is recommended to use
getModel()
instead which returns either the "default" model (template rendering) or the "redirect" model (redirect URL preparation). Use of this method may be needed for advanced cases when access to the "default" model is needed regardless, e.g. to save model attributes specified via@SessionAttributes
.- Returns:
- the default model (never
null
) - Since:
- 4.1.4
-
setRedirectModel
Provide a separate model instance to use in a redirect scenario.The provided additional model however is not used unless
setRedirectModelScenario(boolean)
gets set totrue
to signal an actual redirect scenario. -
setRedirectModelScenario
public void setRedirectModelScenario(boolean redirectModelScenario) Whether the controller has returned a redirect instruction, e.g. a "redirect:" prefixed view name, a RedirectView instance, etc. -
setStatus
Provide an HTTP status that will be passed on to with theModelAndView
used for view rendering purposes.- Since:
- 4.3
-
getStatus
Return the configured HTTP status, if any.- Since:
- 4.3
-
setBindingDisabled
Programmatically register an attribute for which data binding should not occur, not even for a subsequent@ModelAttribute
declaration.- Parameters:
attributeName
- the name of the attribute- Since:
- 4.3
-
isBindingDisabled
Whether binding is disabled for the given model attribute.- Since:
- 4.3
-
setBinding
Register whether data binding should occur for a corresponding model attribute, corresponding to an@ModelAttribute(binding=true/false)
declaration.Note: While this flag will be taken into account by
isBindingDisabled(java.lang.String)
, a hardsetBindingDisabled(java.lang.String)
declaration will always override it.- Parameters:
attributeName
- the name of the attribute- Since:
- 4.3.13
-
getSessionStatus
Return theSessionStatus
instance to use that can be used to signal that session processing is complete. -
setRequestHandled
public void setRequestHandled(boolean requestHandled) Whether the request has been handled fully within the handler, e.g.@ResponseBody
method, and therefore view resolution is not necessary. This flag can also be set when controller methods declare an argument of typeServletResponse
orOutputStream
).The default value is
false
. -
isRequestHandled
public boolean isRequestHandled()Whether the request has been handled fully within the handler. -
addAttribute
Add the supplied attribute to the underlying model. A shortcut forgetModel().addAttribute(String, Object)
. -
addAttribute
Add the supplied attribute to the underlying model. A shortcut forgetModel().addAttribute(Object)
. -
addAllAttributes
Copy all attributes to the underlying model. A shortcut forgetModel().addAllAttributes(Map)
. -
mergeAttributes
Copy attributes in the suppliedMap
with existing objects of the same name taking precedence (i.e. not getting replaced). A shortcut forgetModel().mergeAttributes(Map<String, ?>)
. -
removeAttributes
Remove the given attributes from the model. -
containsAttribute
Whether the underlying model contains the given attribute name. A shortcut forgetModel().containsAttribute(String)
. -
toString
Return diagnostic information.
-