An <h:commandButton> executes a method in a Seam component. In some situations, it opens a <rich:modalPanel> asking for user input. The user inputs data and clicks on another <h:commandButton> which calls a method in a Seam component. After that method completes, I would like to again call the method called by the first <h:commandButton>, and have the navigation be based on that method's navigation rules.
The issue is that the <rich:modalPanel> could have been opened as a result of any of a number of methods. In the first method, I can programmatically create a MethodExpression to the first method and save it where the second method can access it.
So I need a way to, at the end of my method, skip the Render Response phase and restart the cycle with the current view and a specified MethodExpression (and supplied parameters for the method) (or, I suppose, simply restart the Invoke Application phase with the new method) for the page action. Is there a way to do this?
I thought about programmatically determining what the navigation outcome of the first method would have been and save that and let the second method return it, but there are situation in which I would really like to rerun the first method.