Say I have the following jPDL pageflows: PF1: page1.xhtml -> page2.xhtml PF2: page1.xhtml -> page3.xhtml PF3: page4.xhtml -> page5.xhtml
What I want to happen is that when the user goes to "controller.seam?flow=PF?", they'll automatically be redirected to the right page and start the right flow. Unfortunately, though that seems a simple task, in reality it's a big pain to do. Ideally, I'd like to be able to do: | <page view-id="/controller.xhtml" action="#{controller.getFlow}"> | <param name="flow" value="#{controller.flow}" /> | | <navigation> | <rule if-outcome="PF1"> | <begin-conversation join="true" pageflow="PF1" /> | </rule> | <rule if-outcome="PF2"> | <begin-conversation join="true" pageflow="PF2" /> | </rule> | ... | </navigation> | </page> | (even that in an ideal world would be more concise, as you can most likely envision) However, that doesn't work! If the pageflow has a <start-page> node, Seam doesn't like that its view-id is different than the current page (the controller). If the pageflow has a <start-state> node (automatically going to the first page in the flow), Seam complains that it can't do that while in a RENDER_RESPONSE phase. It would seem the following might get around those issues (though add even more duplicate code): | <rule if-outcome="PF1"> | <redirect view-id="page1.xhtml" /> | <begin-conversation join="true" pageflow="PF1" /> | </rule> | However, that doesn't work either! Seam doesn't allow multiple elements inside a rule element. Currently, I'm solving the problem by doing the following; it works, but has lots of ugly duplication (antithema to Seam's goals): | <page view-id="/controller.xhtml" action="#{controller.getFlow}"> | <param name="flow" value="#{controller.flow}" /> | | <navigation> | <rule if-outcome="PF1"> | <redirect view-id="/page1.xhtml" /> | </rule> | <rule if-outcome="PF2"> | <redirect view-id="/page1.xhtml" /> | </rule> | <rule if-outcome="PF3"> | <redirect view-id="/page4.xhtml" /> | </rule> | </navigation> | </page> | | <page view-id="/page1.xhtml" action="#{controller.getFlow}"> | <navigation> | <rule if-outcome="PF1"> | <begin-conversation join="true" pageflow="PF1" /> | </rule> | </navigation> | </page> | | <page view-id="/page1.xhtml" action="#{controller.getFlow}"> | <navigation> | <rule if-outcome="PF2"> | <begin-conversation join="true" pageflow="PF2" /> | </rule> | </navigation> | </page> | | <page view-id="/page4.xhtml" action="#{controller.getFlow}"> | <navigation> | <rule if-outcome="PF3"> | <begin-conversation join="true" pageflow="PF3" /> | </rule> | </navigation> | </page> | Should I submit a feature request for a solution to this issue? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074020#4074020 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074020 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user