|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IRequestCycle
Controller object that manages a single request cycle. A request cycle is one 'hit' on the web server. In the case of a Tapestry application, this will involve:
IEngineService
object
Mixed in with this is:
A request cycle is broken up into two phases. The rewind phase is optional, as it tied
to Form
components. In the rewind phase, a previous page render is redone (discarding output) until a
specific component of the page is reached. This rewinding ensures that the page is restored to
the exact state it had when the URL for the request cycle was generated, taking into account the
dynamic nature of the page (ForBean
,
Conditional
, etc.). Once this component is reached, it
can notify its IActionListener
. The listener has the ability to update the state of any
pages and select a new result page.
Following the rewind phase is the render phase. During the render phase, a page is actually rendered and output sent to the client web browser.
Method Summary | |
---|---|
void |
activate(IPage page)
Sets the active page for the request. |
void |
activate(String name)
A convienience for invoking activate(IPage) . |
void |
cleanup()
Invoked after the request cycle is no longer needed, to release any resources it may have. |
void |
commitPageChanges()
Invoked just before rendering the response page to get all page recorders touched in this request cycle
to commit their changes (save them to persistant storage). |
void |
disableFocus()
Sets client side form focus off globally for all forms in this request cycle. |
String |
encodeIdState()
Encodes the current state of all allocated component ids (using IdAllocator )
to a String value that can be embedded in URLs or forms. |
String |
encodeURL(String URL)
Passes the String through HttpServletResponse.encodeURL(java.lang.String) , which ensures
that the session id is encoded in the URL (if necessary). |
void |
forgetPage(String name)
Forgets any stored changes to the specified page. |
String |
getAbsoluteURL(String partialURL)
Converts a partial URL into an absolute URL. |
Object |
getAttribute(String name)
Retrieves a previously stored attribute, returning null if not found. |
IEngine |
getEngine()
Returns the engine which is processing this request cycle. |
Infrastructure |
getInfrastructure()
Returns the central Infrastructure object used to
manage the processing of the request. |
Object[] |
getListenerParameters()
Returns parameters previously stored by setListenerParameters(Object[]) . |
IPage |
getPage()
Identifies the active page, the page which will ultimately render the response. |
IPage |
getPage(String name)
Returns the page with the given name. |
String |
getParameter(String name)
Returns a query parameter value, or null if not provided in the request. |
String[] |
getParameters(String name)
Returns all query parameter values for the given name. |
ResponseBuilder |
getResponseBuilder()
Entry point for getting the response builder used to build this response. |
IEngineService |
getService()
Returns the service which initiated this request cycle. |
String |
getUniqueId(String baseId)
Returns the provided string, possibly modified (with an appended suffix) to make it unique. |
void |
initializeIdState(String encodedSeed)
Used in conjunction with encodeIdState() to re-initialize the internal id allocation state
of a request during a form rewind. |
boolean |
isFocusDisabled()
Check for global focus being disabled. |
boolean |
isRewinding()
Returns true if the context is being used to rewind a prior state of the page. |
boolean |
isRewound(IComponent component)
Checks to see if the current action id matches the target action id. |
String |
peekUniqueId(String baseId)
Returns what will be the next unique id generated based on the given input, but doesn't store the result. |
void |
removeAttribute(String name)
Removes a previously stored attribute, if one with the given name exists. |
void |
renderPage(ResponseBuilder builder)
Renders the given page. |
boolean |
renderStackEmpty()
Tests if the render component chain is empty, meaning no components have been loaded onto the stack yet. |
Iterator |
renderStackIterator()
Creates a traversable iterator for moving through the stack. |
IRender |
renderStackPeek()
Looks at the object at the top of the render stack without removing the IRender from the stack. |
IRender |
renderStackPop()
Removes the IRender at the top of the stack, if any. |
IRender |
renderStackPush(IRender render)
Pushes the specified render onto the current render stack. |
int |
renderStackSearch(IRender render)
Returns the 1-based position where an object is on this stack. |
void |
rewindForm(IForm form)
Used by forms to perform a partial rewind so as to respond to the
form submission (using the direct service). |
void |
sendRedirect(String URL)
Sends a redirect to the client web browser. |
void |
setAttribute(String name,
Object value)
Allows a temporary object to be stored in the request cycle, which allows otherwise unrelated objects to communicate. |
void |
setListenerParameters(Object[] parameters)
Invoked by a service to store an array of application-specific
parameters. |
void |
setResponseBuilder(ResponseBuilder builder)
Sets the ResponseBuilder to use for this response, don't
try setting this unless you're very sure you know what you are doing as
this isn't the only way that it is used. |
Method Detail |
---|
void cleanup()
String encodeURL(String URL)
HttpServletResponse.encodeURL(java.lang.String)
, which ensures
that the session id is encoded in the URL (if necessary).
URL
- The url to encode.
IEngine getEngine()
Object getAttribute(String name)
name
- The name of the attribute to retrieve.
IPage getPage()
IPage getPage(String name)
name
- The page to get a reference to.
PageNotFoundException
- if the page does not exist.IPageSource.getPage(IRequestCycle, String)
boolean isRewinding()
boolean isRewound(IComponent component)
If theres a match on action id, then the component is compared against the target component.
If there's a mismatch then a StaleLinkException
is thrown.
component
- The component to check.
void setResponseBuilder(ResponseBuilder builder)
ResponseBuilder
to use for this response, don't
try setting this unless you're very sure you know what you are doing as
this isn't the only way that it is used. (ie replacing this builder won't
necessarily override another builder being used already)
builder
- The response builder that may be used by components
to help with delegate/sub component rendering.ResponseBuilder getResponseBuilder()
boolean renderStackEmpty()
IRender renderStackPeek()
IRender
from the stack.
IRender renderStackPop()
IRender
at the top of the stack, if any.
IRender
, if any.IRender renderStackPush(IRender render)
render
- The IRender
object being pushed.
IRender
.int renderStackSearch(IRender render)
render
- The IRender
being searched for.
Iterator renderStackIterator()
void removeAttribute(String name)
name
- The key name of the attribute to remove.void renderPage(ResponseBuilder builder)
IRender.render(IMarkupWriter, IRequestCycle)
since the request
cycle must perform some setup before rendering.
builder
- Renders the currently active page using the specified builder.void setAttribute(String name, Object value)
HttpServletRequest.setAttribute()
,
except that values can be changed and removed as well.
This is used by components to locate each other. A component, such as
Body
, will write itself under a well-known name into the
request cycle, and components it wraps can locate it by that name.
Attributes are cleared at the end of each render or rewind phase.
name
- Key name of the attribute to store.value
- Value of the attribute.void commitPageChanges()
page recorders
touched in this request cycle
to commit their changes (save them to persistant storage).
IPageRecorder.commit()
IEngineService getService()
void rewindForm(IForm form)
forms
to perform a partial rewind so as to respond to the
form submission (using the direct service).
form
- The form to rewind.void disableFocus()
boolean isFocusDisabled()
void setListenerParameters(Object[] parameters)
service
to store an array of application-specific
parameters. These can later be retrieved (typically, by an application-specific listener
method) by invoking getListenerParameters()
.
parameters
- The parameters to set which will be available as method parameters
to any listeners invoked in this request.DirectService
Object[] getListenerParameters()
setListenerParameters(Object[])
.
void activate(String name)
activate(IPage)
. Invokes getPage(String)
to
get an instance of the named page.
name
- The name of the page to activate.void activate(IPage page)
service
.
Frequently, the active page is changed (from a listener method) to choose an alternate page
to render the response).
IPage.validate(IRequestCycle)
is invoked on the page to be activated.
PageRedirectException
is caught and the page specified in the exception will be the
active page instead (that is, a page may "pass the baton" to another page using the
exception). The new page is also validated. This continues until a page does not throw
PageRedirectException
.
Validation loops can occur, where page A redirects to page B and then page B redirects back
to page A (possibly with intermediate steps). This is detected and results in an
ApplicationRuntimeException
.
page
- The page to activate.String getParameter(String name)
name
- The name of the request parameter to retrieve.
String[] getParameters(String name)
name
- The name of the parameters to retrieve.
String getAbsoluteURL(String partialURL)
request
.
partialURL
- The url to modify into an absolute url.
void forgetPage(String name)
name
- The name of the page instance to throw all persistent properties away for.Infrastructure getInfrastructure()
Infrastructure
object used to
manage the processing of the request.
Infrastructure
object associated with this request.String getUniqueId(String baseId)
baseId
- the base id from which to generate the unique string.
String peekUniqueId(String baseId)
baseId
- the base id from which to generate the unique string.
void sendRedirect(String URL)
RedirectException
, but may change in a later release.
URL
- The url to send a client redirect for.
RedirectException
String encodeIdState()
IdAllocator
)
to a String value that can be embedded in URLs or forms.
This method is used primarily by the Form
component to encode the state
of the current ids allocated so as to maintain consistent state during rewind - especially in cases where
multiple form components are rendered in a page.
initializeIdState(String)
.void initializeIdState(String encodedSeed)
encodeIdState()
to re-initialize the internal id allocation state
of a request during a form rewind.
encodedSeed
- The value returned from a previous invocation of encodeIdState()
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |