About pageflow
rlhr Jan 4, 2007 10:02 AMHello,
I ran into some trouble trying to start properly a pageflow.
First of all, let me explain the situation. I'm using JBoss 4.0.4GA with Seam 1.1.0GA
I have a SFSB that is responsible for choosing a flow and start it.
@Begin
public void init() {
...
Pageflow.instance().begin(this.getPageflow());
}
The pageflow is defined as followed:
<?xml version="1.0"?>
<pageflow-definition name="test">
<start-page name="start">
<transition to="isUserLoggedIn"/>
</start-page>
<decision name="isUserLoggedIn" expression="#{loginAction.isUserLoggedIn}">
<transition name="true" to="page1" />
<transition name="false" to="page2" />
</decision>
...
</pageflow-definition>
The flow is started in the RENDER_RESPONSE phase, so I can't use <start-state>
The issue I had is that the flow didn't start properly (I was redirected to an error page) but could not see anything wrong in the logs.
So I looked into the code, more exactly at the begin method of Pageflow.java.
public void begin(String pageflowDefinitionName)
{
if ( log.isDebugEnabled() )
{
log.debug("beginning pageflow: " + pageflowDefinitionName);
}
processInstance = PageflowHelper.newPageflowInstance( getPageflowProcessDefinition(pageflowDefinitionName) );
//if ( Lifecycle.getPhaseId().equals(PhaseId.RENDER_RESPONSE) )
//{
//if a pageflow starts during the render response phase
//(as a result of a @Create method), we know the navigation
//handler will not get called, so we should force the
//pageflow out of the start state immediately
//TODO: this is not actually completely true, what about <s:actionLink/>
//pi.signal();
//}
setDirty();
Events.instance().raiseEvent("org.jboss.seam.beginPageflow." + pageflowDefinitionName);
storePageflowToViewRootIfNecessary();
}
There is a comment about what I believe is my case. I then solved the problem by adding the following line at the end of the SFSB init method:
Pageflow.instance().navigate(facesContext, null);
Now everything is fine but I believe this should be fixed in Seam. It seems to me that you guys know about it already, so any plan yet?
Regards,
Richard