|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectPageFlowManagedObject
FlowController
PageFlowController
public abstract class PageFlowController
Base class for user-defined state and controller logic associated with a particular web application directory. The source code for this class lives in the directory with a ".jpf" extension, and is automatically recompiled by the server whenever necessary. When a request arrives for any ".jpf", ".jsp", or ".do" in the directory, an instance of the PageFlowController class is set as the current page flow, and remains in the session until a different one becomes active.
The user's PageFlowController class handles actions that are most commonly raised by user interaction with JSP files. The actions are handled by action methods that perform arbitrary logic and determine the next URI to be displayed.
Actions that are not handled by the current PageFlowController "bubble" up to the appropriate
SharedFlowController
instance.
Data in the current PageFlowController instance can be accessed by databinding tags using the
pageFlow
scope.
SharedFlowController
,
Serialized FormField Summary |
---|
Fields inherited from class FlowController |
---|
defaultLocale, servlet |
Constructor Summary | |
---|---|
protected |
PageFlowController()
Default constructor. |
Method Summary | |
---|---|
protected void |
deleteFromSession(HttpServletRequest request)
Remove this instance from the session. |
void |
ensureFailover(HttpServletRequest request)
Ensures that any changes to this FlowController will be replicated in a cluster (for failover), even if the replication scheme uses a change-detection algorithm that relies on HttpSession.setAttribute to be aware of changes. |
protected String |
getCurrentForwardPath()
Get the webapp-relative URI for the most recent page (in this page flow) shown to the user. |
PreviousPageInfo |
getCurrentPageInfo()
Get information about the most recent page (in this page flow) shown to the user. |
String |
getDisplayName()
|
String |
getModulePath()
Get the Struts module path for this page flow. |
PreviousActionInfo |
getPreviousActionInfo()
Get information about the most recent action run in this page flow. |
protected String |
getPreviousActionURI()
Get the URI for the most recent action in this PageFlowController. |
protected ActionForm |
getPreviousForm()
Get the form instance from the most recent action execution in this PageFlowController. |
protected String |
getPreviousForwardPath()
Get the webapp-relative URI for the previous page (in this page flow) shown to the user. |
PreviousPageInfo |
getPreviousPageInfo()
Get information about the previous page (in this page flow) shown to the user. |
protected SharedFlowController |
getSharedFlow()
|
protected String |
getTaxonomy()
Get the "resource taxonomy": a period-separated list that starts with the current web application name, continues through all of this PageFlowController's parent directories, and ends with this PageFlowController's class name. |
String |
getURI()
Get the URI for addressing this PageFlowController. |
protected ActionForward |
internalExecute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
|
protected boolean |
isNestable()
Tell whether this PageFlowController can be "nested", i.e., if it can be invoked from another page flow with the intention of returning to the original one. |
boolean |
isPageFlow()
Tell whether this is a PageFlowController. |
protected boolean |
isSingleton()
Tell whether this is a "singleton" page flow. |
void |
valueUnbound(HttpSessionBindingEvent event)
Callback when this page flow is removed from the user session. |
Methods inherited from class PageFlowManagedObject |
---|
fieldIsUninitialized, getServletContext, initializeField, valueBound |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected PageFlowController()
Method Detail |
---|
public String getModulePath()
getModulePath
in interface ActionResolver
getModulePath
in class FlowController
public String getURI()
protected boolean isNestable()
@jpf:controller nested="true"
annotation.
isNestable
in class FlowController
true
if this PageFlowController can be nested.protected boolean isSingleton()
FlowController.delete()
is called. Navigating to another page flow hides
the current singleton controller, but does not remove it.
isSingleton
in class FlowController
protected void deleteFromSession(HttpServletRequest request)
deleteFromSession
in class PageFlowManagedObject
public boolean isPageFlow()
isPageFlow
in interface ActionResolver
isPageFlow
in class FlowController
true
.public void ensureFailover(HttpServletRequest request)
ensureFailover
in class PageFlowManagedObject
request
- the current HttpServletRequestprotected ActionForward internalExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
internalExecute
in class FlowController
Exception
protected SharedFlowController getSharedFlow()
protected String getTaxonomy()
protected ActionForm getPreviousForm()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousAction"
attribute, then this method will always return
null
by default. To enable it in this situation, add the following method
to the page flow:
protected boolean alwaysTrackPreviousAction()
{
return true;
}
null
if there was no ActionForm instance.getPreviousPageInfo()
,
getCurrentPageInfo()
,
getPreviousActionInfo()
,
getPreviousActionURI()
,
getPreviousForwardPath()
,
getCurrentForwardPath()
protected String getPreviousActionURI()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousAction"
attribute, then this method will always return
null
by default. To enable it in this situation, add the following method
to the page flow:
protected boolean alwaysTrackPreviousAction()
{
return true;
}
getPreviousPageInfo()
,
getCurrentPageInfo()
,
getPreviousActionInfo()
,
getPreviousForm()
,
getPreviousForwardPath()
,
getCurrentForwardPath()
protected String getCurrentForwardPath()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousPage"
or return-to="currentPage"
attribute, then this method will always return null
by default. To enable
it in this situation, add the following method to the page flow:
protected boolean alwaysTrackPreviousPage()
{
return true;
}
getPreviousPageInfo()
,
getCurrentPageInfo()
,
getPreviousActionInfo()
,
getPreviousActionURI()
,
getPreviousForm()
,
getPreviousForwardPath()
protected String getPreviousForwardPath()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousPage"
or return-to="currentPage"
attribute, then this method will always return null
by default. To enable
it in this situation, add the following method to the page flow:
protected boolean alwaysTrackPreviousPage()
{
return true;
}
getPreviousPageInfo()
,
getCurrentPageInfo()
,
getPreviousActionInfo()
,
getPreviousActionURI()
,
getPreviousForm()
,
getCurrentForwardPath()
public final PreviousPageInfo getCurrentPageInfo()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousPage"
or return-to="currentPage"
attribute, then this method will always return null
by default. To enable
it in this situation, add the following method to the page flow:
protected boolean alwaysTrackPreviousPage()
{
return true;
}
getPreviousPageInfo()
,
getPreviousActionInfo()
,
getPreviousActionURI()
,
getPreviousForm()
,
getPreviousForwardPath()
,
getCurrentForwardPath()
public final PreviousPageInfo getPreviousPageInfo()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousPage"
or return-to="currentPage"
attribute, then this method will always return null
by default. To enable
it in this situation, add the following method to the page flow:
protected boolean alwaysTrackPreviousPage()
{
return true;
}
getCurrentPageInfo()
,
getPreviousActionInfo()
,
getPreviousActionURI()
,
getPreviousForm()
,
getPreviousForwardPath()
,
getCurrentForwardPath()
public final PreviousActionInfo getPreviousActionInfo()
Note: if the current page flow does not use a @jpf:forward
with a
return-to="previousAction"
attribute, then this method will always return
null
by default. To enable it in this situation, add the following method
to the page flow:
protected boolean alwaysTrackPreviousAction()
{
return true;
}
getPreviousPageInfo()
,
getCurrentPageInfo()
,
getPreviousActionURI()
,
getPreviousForm()
,
getPreviousForwardPath()
,
getCurrentForwardPath()
public String getDisplayName()
getDisplayName
in class PageFlowManagedObject
public void valueUnbound(HttpSessionBindingEvent event)
FlowController.onDestroy()
to be called.
valueUnbound
in interface HttpSessionBindingListener
valueUnbound
in class PageFlowManagedObject
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |