java.lang.Object
org.apache.wicket.request.cycle.RequestCycle
- All Implemented Interfaces:
IEventSink
,IMetadataContext<Object,
,RequestCycle> IRequestCycle
public class RequestCycle
extends Object
implements IRequestCycle, IEventSink, IMetadataContext<Object,RequestCycle>
RequestCycle
consists of two steps:
- Resolve request handler
- Execute request handler
IRequestHandler
execution the handler can schedule another IRequestHandler
to run after it is done, or replace all IRequestHandler
s on stack with another
IRequestHandler
.- Author:
- Matej Knopp, igor.vaynberg
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
detach()
DetachesRequestCycle
state.<T extends IRequestHandler>
Optional<T>Finds a IRequestHandler which is either the currently executing handler or is scheduled to be executed.static RequestCycle
get()
Returns request cycle associated with current thread.protected int
final <T> T
getMetaData
(MetaDataKey<T> key) Gets metadata for this request cycle using the given key.Get the original response the request was created with.Get the active response at the request cycle.final long
final UrlRenderer
ReturnsUrlRenderer
for thisRequestCycle
.protected IRequestHandler
ReturnIRequestHandler
for the given exception.mapUrlFor
(Class<C> pageClass, PageParameters parameters) Returns a bookmarkable URL that references a given page class using a given set of page parameters.mapUrlFor
(IRequestHandler handler) Returns URL for the request handler ornull
if the handler couldn't have been encoded.mapUrlFor
(ResourceReference reference, PageParameters params) Returns aUrl
for the resource referenceprotected UrlRenderer
protected void
Called when the request cycle object is beginning its responsevoid
onDetach()
Called after request processing is complete, usually takes care of detaching stateprotected void
Called when the request cycle object has finished its responsevoid
Called when an event is sent to this sinkboolean
Processes the request.boolean
Convenience method that processes the request and detaches theRequestCycle
.void
replaceAllRequestHandlers
(IRequestHandler handler) protected IRequestHandler
Resolves current request to aIRequestHandler
.void
Schedule the request handler to be executed after the current one.final <T> RequestCycle
setMetaData
(MetaDataKey<T> key, T object) Sets the metadata for this request cycle using the given key.void
setRequest
(Request request) INTERNAL This method is for internal Wicket use.setResponse
(Response response) void
setResponsePage
(Class<? extends IRequestablePage> pageClass) Convenience method for setting next page to be rendered.void
setResponsePage
(Class<? extends IRequestablePage> pageClass, RenderPageRequestHandler.RedirectPolicy redirectPolicy) Convenience method for setting next page to be rendered.void
setResponsePage
(Class<? extends IRequestablePage> pageClass, PageParameters parameters) Convenience method for setting next page to be rendered.void
setResponsePage
(Class<? extends IRequestablePage> pageClass, PageParameters parameters, RenderPageRequestHandler.RedirectPolicy redirectPolicy) Convenience method for setting next page to be rendered.void
Convenience method for setting next page to be rendered.final <C extends Page>
CharSequenceurlFor
(Class<C> pageClass, PageParameters parameters) Returns a rendered bookmarkable URL that references a given page class using a given set of page parameters.urlFor
(IRequestHandler handler) Returns the rendered URL for the request handler ornull
if the handler couldn't have been rendered.final CharSequence
urlFor
(ResourceReference reference, PageParameters params) Returns a renderedUrl
for the resource reference
-
Constructor Details
-
RequestCycle
Construct.- Parameters:
context
-
-
-
Method Details
-
get
Returns request cycle associated with current thread.- Returns:
- request cycle instance or
null
if no request cycle is associated with current thread.
-
newUrlRenderer
- Returns:
- a new url renderer
-
getOriginalResponse
Get the original response the request was created with. Access to the original response may be necessary if the response has been temporarily replaced but the components require methods from original response (i.e. cookie methods of WebResponse, etc).- Returns:
- The original response object.
-
getUrlRenderer
ReturnsUrlRenderer
for thisRequestCycle
.- Specified by:
getUrlRenderer
in interfaceIRequestCycle
- Returns:
- UrlRenderer instance.
-
resolveRequestHandler
Resolves current request to aIRequestHandler
.- Returns:
- RequestHandler instance
-
getExceptionRetryCount
- Returns:
- How many times will Wicket attempt to render the exception request handler before giving up.
-
processRequestAndDetach
Convenience method that processes the request and detaches theRequestCycle
.- Returns:
true
if the request resolved to a Wicket request,false
otherwise.
-
processRequest
Processes the request.- Returns:
true
if the request resolved to a Wicket request,false
otherwise.
-
handleException
ReturnIRequestHandler
for the given exception.- Parameters:
e
- exception to handle- Returns:
- RequestHandler instance
- See Also:
-
getRequest
- Specified by:
getRequest
in interfaceIRequestCycle
- Returns:
- current request
-
setRequest
INTERNAL This method is for internal Wicket use. Do not call it yourself unless you know what you are doing.- Parameters:
request
-
-
setMetaData
Sets the metadata for this request cycle using the given key. If the metadata object is not of the correct type for the metadata key, an IllegalArgumentException will be thrown. For information on creating MetaDataKeys, seeMetaDataKey
.- Specified by:
setMetaData
in interfaceIMetadataContext<Object,
RequestCycle> - Type Parameters:
T
-- Parameters:
key
- The singleton key for the metadataobject
- The metadata object- Throws:
IllegalArgumentException
- See Also:
-
getMetaData
Gets metadata for this request cycle using the given key.- Specified by:
getMetaData
in interfaceIMetadataContext<Object,
RequestCycle> - Type Parameters:
T
- The type of the metadata- Parameters:
key
- The key for the data- Returns:
- The metadata or null if no metadata was found for the given key
- See Also:
-
mapUrlFor
Returns URL for the request handler ornull
if the handler couldn't have been encoded.Note: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(org.apache.wicket.request.IRequestHandler)
- Parameters:
handler
- therequest handler
for which to create a callback url- Returns:
- Url instance or
null
-
mapUrlFor
Returns aUrl
for the resource referenceNote: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(org.apache.wicket.request.resource.ResourceReference, org.apache.wicket.request.mapper.parameter.PageParameters)
- Parameters:
reference
- resource referenceparams
- parameters for the resource ornull
if none- Returns:
Url
for the reference
-
mapUrlFor
Returns a bookmarkable URL that references a given page class using a given set of page parameters. Since the URL which is returned contains all information necessary to instantiate and render the page, it can be stored in a user's browser as a stable bookmark.Note: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(Class, org.apache.wicket.request.mapper.parameter.PageParameters)
- Type Parameters:
C
- The type of the page- Parameters:
pageClass
- Class of pageparameters
- Parameters to page ornull
if none- Returns:
- Bookmarkable URL to page
-
urlFor
Returns a renderedUrl
for the resource reference- Parameters:
reference
- resource referenceparams
- parameters for the resource ornull
if none- Returns:
Url
for the reference
-
urlFor
Returns a rendered bookmarkable URL that references a given page class using a given set of page parameters. Since the URL which is returned contains all information necessary to instantiate and render the page, it can be stored in a user's browser as a stable bookmark.- Type Parameters:
C
-- Parameters:
pageClass
- Class of pageparameters
- Parameters to page ornull
if none- Returns:
- Bookmarkable URL to page
-
urlFor
Returns the rendered URL for the request handler ornull
if the handler couldn't have been rendered.The resulting URL will be relative to current page.
- Parameters:
handler
-- Returns:
- Url String or
null
-
detach
DetachesRequestCycle
state. Called after request processing is complete -
onDetach
Called after request processing is complete, usually takes care of detaching state -
setResponsePage
Convenience method for setting next page to be rendered.- Parameters:
page
-
-
setResponsePage
Convenience method for setting next page to be rendered.- Parameters:
pageClass
- The class of the page to render
-
setResponsePage
public void setResponsePage(Class<? extends IRequestablePage> pageClass, RenderPageRequestHandler.RedirectPolicy redirectPolicy) Convenience method for setting next page to be rendered.- Parameters:
pageClass
- The class of the page to renderredirectPolicy
- The policy to use when deciding whether to redirect or not
-
setResponsePage
Convenience method for setting next page to be rendered.- Parameters:
pageClass
- The class of the page to renderparameters
- The query parameters for the page to be rendered
-
setResponsePage
public void setResponsePage(Class<? extends IRequestablePage> pageClass, PageParameters parameters, RenderPageRequestHandler.RedirectPolicy redirectPolicy) Convenience method for setting next page to be rendered.- Parameters:
pageClass
- The class of the page to renderparameters
- The query parameters for the page to be renderedredirectPolicy
- The policy to use when deciding whether to redirect or not
-
getStartTime
- Returns:
- The start time for this request
-
onEvent
Called when an event is sent to this sink- Specified by:
onEvent
in interfaceIEventSink
-
onBeginRequest
Called when the request cycle object is beginning its response -
onEndRequest
Called when the request cycle object has finished its response -
getListeners
- Returns:
- listeners
-
getResponse
Get the active response at the request cycle.- Specified by:
getResponse
in interfaceIRequestCycle
- Returns:
- response
-
setResponse
Replaces the currentResponse
with newResponse
instance. The original response is always restored after theIRequestHandler.respond(IRequestCycle)
method is finished.- Specified by:
setResponse
in interfaceIRequestCycle
- Returns:
- Response being replaced.
-
scheduleRequestHandlerAfterCurrent
Schedule the request handler to be executed after the current one.- Specified by:
scheduleRequestHandlerAfterCurrent
in interfaceIRequestCycle
-
getActiveRequestHandler
- Returns:
- active handler on executor
- See Also:
-
getRequestHandlerScheduledAfterCurrent
- Returns:
- the handler scheduled to be executed after current by the executor
- See Also:
-
replaceAllRequestHandlers
- Parameters:
handler
-- See Also:
-
find
Finds a IRequestHandler which is either the currently executing handler or is scheduled to be executed.- Returns:
- the found IRequestHandler or
Optional.empty()
-