Hello,

I have a problem using PageFlowScope when the dialog contains a
frameset. I explain what I'm doing:

I have an <af:table> that launch a dialog in a child window when the
user click on a row.

<af:commandLink text="Edit" useWindow="true"
action="#{peopleActions.editPerson}">
 <af:setActionListener from="#{person.personId}"
to="#{pageFlowScope.personId}"/>
</af:commandLink>

In the action method, I put an object in the PageFlowScope and return
a dialog:* outcome.

public String editPerson() {
 Integer personId = (Integer) getPageFlowAttribute("personId");
 PersonDTO person = PeopleFacadeUtil.getFacade().getPersonDetails(personId);
 setPageFlowAttribute("person", person);
 return "dialog:editPerson";
}

My navigation rule point to a frameset page:

<navigation-rule>
 <navigation-case>
   <from-action>#{peopleActions.editPerson}</from-action>
   <from-outcome>dialog:editPerson</from-outcome>
   <to-view-id>/people/edit/frameset.jspx</to-view-id>
 </navigation-case>
</navigation-rule>

And my frameset is defined like this:

<afh:frameBorderLayout>
 <f:facet name="top">
   <afh:frame
         source="/faces/people/edit/top.jspx" name="editPersonTop"
height="350px" />
   </f:facet>
   <f:facet name="bottom">
     <afh:frame
         source="/faces/people/edit/edit.jspx"
name="editPersonContent" height="*" />
   </f:facet>
</afh:frameBorderLayout>


The problem is that inside the top.jspx and edit.jspx, the
PageFlowScope "person" attribute is lost. If I skip the frameset and
navigate directly to one of the two, the object is there.

My guess is that the <af:frame> component doesn't pass throught the
_afPfm parameter when loading the view defined in "source", so the
correct pageFlowScope can't be determined.

Can this be considered a bug?

Thanks
Cosma

Reply via email to