Class ServletExternalContext
java.lang.Object
org.springframework.webflow.context.servlet.ServletExternalContext
- All Implemented Interfaces:
ExternalContext
- Direct Known Subclasses:
MvcExternalContext
Provides contextual information about an HTTP Servlet environment that has interacted with Spring Web Flow.
- Author:
- Keith Donald, Erwin Vervaet, Jeremy Grelle
-
Constructor Summary
ConstructorsConstructorDescriptionServletExternalContext(jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Create a new external context wrapping given servlet HTTP request and response and given servlet context.ServletExternalContext(jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, FlowUrlHandler flowUrlHandler) Create a new external context wrapping given servlet HTTP request and response and given servlet context. -
Method Summary
Modifier and TypeMethodDescriptionProvides access to the external application map, providing a storage for data local to the current user application and accessible to both internal and external SWF artifacts.protected jakarta.servlet.ServletContextReturns the servlet context.Returns the logical path to the application hosting this external context.Provides access to the user's principal security object.booleanReturns the flag indicating if an external redirect response has been requested by the flow.Returns the URL to redirect to.booleanReturns the flag indicating if a flow definition redirect response has been requested by the flow.booleanReturns the flag indicating if a flow execution redirect response has been requested by the flow.getFlowExecutionUrl(String flowId, String flowExecutionKey) Get a flow execution URL for the execution with the provided key.Returns the id of the flow definition to redirect to.Returns the input to pass the flow definition through the redirect.protected FlowUrlHandlerReturns the configured flow url handler.Provides access to the global external session map, providing a storage for data globally accross the user session and accessible to both internal and external SWF artifacts.Returns the client locale.Provides access to the context object for the current environment.Provides access to the request object for the current environment.Provides access to the response object for the current environment.booleanIf a redirect response has been requested, indicates if the redirect should be issued from a popup dialog.protected jakarta.servlet.http.HttpServletRequestReturns the underlying HttpServletRequest.Provides access to the external request attribute map, providing a storage for data local to the current user request and accessible to both internal and external SWF artifacts.Provides access to the parameters associated with the user request that led to SWF being called.protected jakarta.servlet.http.HttpServletResponseReturns the underlying HttpServletResponse.Get a writer for writing out a response.Provides access to the external session map, providing a storage for data local to the current user session and accessible to both internal and external SWF artifacts.booleanReturns true if the current request is an asynchronous Ajax request.booleanIs a render response allowed to be written for this request? Always return false after a response has been completed.booleanHas the response been completed? Response complete status can be achieved by: Writing out the response and callingExternalContext.recordResponseComplete(), or Calling one of the redirect request methodsbooleanReturns true if the response has been completed with flow execution redirect request.voidCalled by flow artifacts such as View states and end states to indicate they handled the response, typically by writing out content to the response stream.voidrequestExternalRedirect(String location) Request a redirect to an arbitrary resource location.voidrequestFlowDefinitionRedirect(String flowId, MutableAttributeMap<?> input) Request that a flow definition redirect be performed by the calling environment.voidRequest that a flow execution redirect be performed by the calling environment.voidRequest that the current redirect requested be sent to the client in a manner that causes the client to issue the redirect from a popup dialog.voidsetAjaxRequest(boolean ajaxRequest) Indicates if the current request from this client is an ajax request.
-
Constructor Details
-
ServletExternalContext
public ServletExternalContext(jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Create a new external context wrapping given servlet HTTP request and response and given servlet context.- Parameters:
context- the servlet contextrequest- the http servlet requestresponse- the http servlet response
-
ServletExternalContext
public ServletExternalContext(jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, FlowUrlHandler flowUrlHandler) Create a new external context wrapping given servlet HTTP request and response and given servlet context.- Parameters:
context- the servlet contextrequest- the http servlet requestresponse- the http servlet responseflowUrlHandler- the flow url handler
-
-
Method Details
-
setAjaxRequest
public void setAjaxRequest(boolean ajaxRequest) Indicates if the current request from this client is an ajax request. This flag may effect the handling of response writing within Spring Web Flow.- Parameters:
ajaxRequest- the ajax request flag
-
getContextPath
Description copied from interface:ExternalContextReturns the logical path to the application hosting this external context.- Specified by:
getContextPathin interfaceExternalContext- Returns:
- the context path
-
getRequestParameterMap
Description copied from interface:ExternalContextProvides access to the parameters associated with the user request that led to SWF being called. This map is expected to be immutable and cannot be changed.- Specified by:
getRequestParameterMapin interfaceExternalContext- Returns:
- the immutable request parameter map
-
getRequestMap
Description copied from interface:ExternalContextProvides access to the external request attribute map, providing a storage for data local to the current user request and accessible to both internal and external SWF artifacts.- Specified by:
getRequestMapin interfaceExternalContext- Returns:
- the mutable request attribute map
-
getSessionMap
Description copied from interface:ExternalContextProvides access to the external session map, providing a storage for data local to the current user session and accessible to both internal and external SWF artifacts.- Specified by:
getSessionMapin interfaceExternalContext- Returns:
- the mutable session attribute map
-
getGlobalSessionMap
Description copied from interface:ExternalContextProvides access to the global external session map, providing a storage for data globally accross the user session and accessible to both internal and external SWF artifacts.Note: most external context implementations do not distinguish between the concept of a "local" user session scope and a "global" session scope. Otherwise this method returns the same map as calling
ExternalContext.getSessionMap().- Specified by:
getGlobalSessionMapin interfaceExternalContext- Returns:
- the mutable global session attribute map
-
getApplicationMap
Description copied from interface:ExternalContextProvides access to the external application map, providing a storage for data local to the current user application and accessible to both internal and external SWF artifacts.- Specified by:
getApplicationMapin interfaceExternalContext- Returns:
- the mutable application attribute map
-
getCurrentUser
Description copied from interface:ExternalContextProvides access to the user's principal security object.- Specified by:
getCurrentUserin interfaceExternalContext- Returns:
- the user principal
-
getLocale
Description copied from interface:ExternalContextReturns the client locale.- Specified by:
getLocalein interfaceExternalContext- Returns:
- the locale
-
getNativeContext
Description copied from interface:ExternalContextProvides access to the context object for the current environment.- Specified by:
getNativeContextin interfaceExternalContext- Returns:
- the environment specific context object
-
getNativeRequest
Description copied from interface:ExternalContextProvides access to the request object for the current environment.- Specified by:
getNativeRequestin interfaceExternalContext- Returns:
- the environment specific request object.
-
getNativeResponse
Description copied from interface:ExternalContextProvides access to the response object for the current environment.- Specified by:
getNativeResponsein interfaceExternalContext- Returns:
- the environment specific response object.
-
isAjaxRequest
public boolean isAjaxRequest()Description copied from interface:ExternalContextReturns true if the current request is an asynchronous Ajax request.- Specified by:
isAjaxRequestin interfaceExternalContext- Returns:
- true if the current request is an Ajax request
-
getFlowExecutionUrl
Description copied from interface:ExternalContextGet a flow execution URL for the execution with the provided key. Typically used by response writers that write out references to the flow execution to support postback on a subsequent request. The URL returned is encoded.- Specified by:
getFlowExecutionUrlin interfaceExternalContext- Parameters:
flowId- the flow definition idflowExecutionKey- the flow execution key- Returns:
- the flow execution URL
-
getResponseWriter
Description copied from interface:ExternalContextGet a writer for writing out a response.- Specified by:
getResponseWriterin interfaceExternalContext- Returns:
- the writer
- Throws:
IllegalStateException- if the response has completed or is not allowed
-
isResponseAllowed
public boolean isResponseAllowed()Description copied from interface:ExternalContextIs a render response allowed to be written for this request? Always return false after a response has been completed. May return false before that to indicate a response is not allowed to be completed.- Specified by:
isResponseAllowedin interfaceExternalContext- Returns:
- true if yes, false otherwise
-
isResponseComplete
public boolean isResponseComplete()Description copied from interface:ExternalContextHas the response been completed? Response complete status can be achieved by:- Writing out the response and calling
ExternalContext.recordResponseComplete(), or - Calling one of the redirect request methods
- Specified by:
isResponseCompletein interfaceExternalContext- Returns:
- true if yes, false otherwise
- See Also:
- Writing out the response and calling
-
recordResponseComplete
public void recordResponseComplete()Description copied from interface:ExternalContextCalled by flow artifacts such as View states and end states to indicate they handled the response, typically by writing out content to the response stream. Setting this flag allows this external context to know the response was handled, and that it not need to take additional response handling action itself.- Specified by:
recordResponseCompletein interfaceExternalContext
-
isResponseCompleteFlowExecutionRedirect
public boolean isResponseCompleteFlowExecutionRedirect()Description copied from interface:ExternalContextReturns true if the response has been completed with flow execution redirect request.- Specified by:
isResponseCompleteFlowExecutionRedirectin interfaceExternalContext- Returns:
- true if a redirect response has been completed
- See Also:
-
requestFlowExecutionRedirect
Description copied from interface:ExternalContextRequest that a flow execution redirect be performed by the calling environment. Typically called from within a flow execution to request a refresh operation, usually to support "refresh after event processing" behavior. Calling this method also sets responseComplete status to true.- Specified by:
requestFlowExecutionRedirectin interfaceExternalContext- Throws:
IllegalStateException- if the response has completed- See Also:
-
requestFlowDefinitionRedirect
public void requestFlowDefinitionRedirect(String flowId, MutableAttributeMap<?> input) throws IllegalStateException Description copied from interface:ExternalContextRequest that a flow definition redirect be performed by the calling environment. Typically called from within a flow execution end state to request starting a new, independent execution of a flow in a chain-like manner. Calling this method also sets responseComplete status to true.- Specified by:
requestFlowDefinitionRedirectin interfaceExternalContext- Parameters:
flowId- the id of the flow definition to redirect toinput- input to pass the flow; this input is generally encoded the url to launch the flow- Throws:
IllegalStateException- if the response has completed- See Also:
-
requestExternalRedirect
Description copied from interface:ExternalContextRequest a redirect to an arbitrary resource location. May not be supported in some environments. Calling this method also sets responseComplete status to true.- Specified by:
requestExternalRedirectin interfaceExternalContext- Parameters:
location- the location of the resource to redirect to- Throws:
IllegalStateException- if the response has completed- See Also:
-
requestRedirectInPopup
Description copied from interface:ExternalContextRequest that the current redirect requested be sent to the client in a manner that causes the client to issue the redirect from a popup dialog. Only call this method after a redirect has been requested.- Specified by:
requestRedirectInPopupin interfaceExternalContext- Throws:
IllegalStateException- if a redirect has not been requested- See Also:
-
getFlowExecutionRedirectRequested
public boolean getFlowExecutionRedirectRequested()Returns the flag indicating if a flow execution redirect response has been requested by the flow. -
getFlowDefinitionRedirectRequested
public boolean getFlowDefinitionRedirectRequested()Returns the flag indicating if a flow definition redirect response has been requested by the flow. -
getFlowRedirectFlowId
Returns the id of the flow definition to redirect to. Only set whengetFlowDefinitionRedirectRequested()returns true. -
getFlowRedirectFlowInput
Returns the input to pass the flow definition through the redirect. Only set whengetFlowDefinitionRedirectRequested()returns true. -
getExternalRedirectRequested
public boolean getExternalRedirectRequested()Returns the flag indicating if an external redirect response has been requested by the flow. -
getExternalRedirectUrl
Returns the URL to redirect to. Only set ifgetExternalRedirectRequested()returns true. -
getRedirectInPopup
public boolean getRedirectInPopup()If a redirect response has been requested, indicates if the redirect should be issued from a popup dialog. -
getContext
protected jakarta.servlet.ServletContext getContext()Returns the servlet context. -
getRequest
protected jakarta.servlet.http.HttpServletRequest getRequest()Returns the underlying HttpServletRequest. -
getResponse
protected jakarta.servlet.http.HttpServletResponse getResponse()Returns the underlying HttpServletResponse. -
getFlowUrlHandler
Returns the configured flow url handler.
-