How to isolate navigation and action methods?

Hi,
I have 3 pages and I want to implement the following navigation:
Page 1 <--> Page 2 <--> Page 3
Page 1 <--> Page 3
Page 3 has 2 buttons ('OK' and 'Cancel'), both lead to the previous page (Page 1 or Page 2).
I just see one way to do this :
<navigation-rule>
          <from-view-id>/page3.jsp</from-view-id>
          <navigation-case>
               <from-outcome>ok_page2</from-outcome>
               <to-view-id>/page2.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>cancel-page2</from-outcome>
               <to-view-id>/page2.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>ok_page1</from-outcome>
               <to-view-id>/page1.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>cancel-page1</from-outcome>
               <to-view-id>/page1.jsp</to-view-id>
          </navigation-case>
</navigation-rule>and actions methods have to check where we come from to return the right outcome.
Basiclly I don't want to bind page implementation to navigation rules.
I'd prefer something like that :
<navigation-rule>
          <from-view-id>/page1.jsp</from-view-id>
          <navigation-case>
               <from-outcome>action1</from-outcome>
               <to-view-id>/page2.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>action2</from-outcome>
               <to-view-id>/page3.jsp_alias1</to-view-id>
          </navigation-case>
</navigation-rule>
<navigation-rule>
          <from-view-id>/page2.jsp</from-view-id>
          <navigation-case>
               <from-outcome>action</from-outcome>
               <to-view-id>/page3.jsp_alias2</to-view-id>
          </navigation-case>
</navigation-rule>
<navigation-rule>
          <from-view-id>/page3.jsp_alias2</from-view-id>
          <navigation-case>
               <from-outcome>ok</from-outcome>
               <to-view-id>/page2.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>cancel</from-outcome>
               <to-view-id>/page2.jsp</to-view-id>
          </navigation-case>
</navigation-rule>
<navigation-rule>
          <from-view-id>/page3.jsp_alias1</from-view-id>
          <navigation-case>
               <from-outcome>ok</from-outcome>
               <to-view-id>/page1.jsp</to-view-id>
          </navigation-case>
          <navigation-case>
               <from-outcome>cancel</from-outcome>
               <to-view-id>/page1.jsp</to-view-id>
          </navigation-case>
</navigation-rule>Where '/page3.jsp_alias1' and '/page3.jsp_alias2 refer to /page3.jsp.
How to do that?
Thanks.
Edited by: Keeg on Jul 21, 2009 6:27 AM

But this is what I want to avoid.Page 3 or backing bean has to be aware of the previous page.....
Am I wrong?
Another way?
Edited by: Keeg on Jul 22, 2009 2:28 AM

Similar Messages

  • How to call javascript function & action method on clicking jsf  button?

    I have one jsf custom button. I am checking client side validations in mail by calling javascript function & also sending mail by calling action method of a bean which will execute at server side for onclick event of that button. Because of this when I click on that button its calling both javascript function and action method. So even though validations failed its sending mail. How can I overcome this problem?? Please help me....

    I am asking regarding commanLinks in jsf. I have the following code block in jsf. Even though mailSentMessage('true'); returns false, its calling action="#{emailObjectAction.sendEmail}" method. thats why I got that doubt. try the following code.
    <h:commandLink id="mailBtn123Send"      onclick="return mailSentMessage('true');" value="send mail"     action="#{emailObjectAction.sendEmail}">          
    </h:commandLink>

  • Backingfile:prerender() and action method in page flow

    I am using backing file in a pageflow based portlet in WLP8.1sp5, and implemented its prerender method. After navigating to the middle of this pageflow, the session became expired after 15 mins of inactivity (this is expected). However, when a user click an action button in the browser which sent the request to the stale session, I expected my backing file prerender is invoked and I can check for expired session and route user to a timeout page. But this didn't happen. Instead, I see an ugly error page complaining that action couldn't be found in the pageflow. Of course, the session is no longer there.
    My questions are:
    1. Why WLP framework behave this way? Why backing wasn't called prior to action method of the pageflow?
    2. In WLP (8.1sp5), is there a pattern to handle expired session and render/display a "session timed out" page.
    Thanks in advance!

    I tried it. However, I encountered two problems:
    1. I placed the backing file at desktop level. And the page backing contexts I got back are null:
    try {   
    DesktopBackingContext ctx = DesktopBackingContext.getDesktopBackingContext(request);
    BookBackingContext bbc = ctx.getBookBackingContext();
    List children = bbc.getPageBackingContexts();
    for (Iterator i = children.iterator(); i.hasNext();)
    PageBackingContext pbc = (PageBackingContext) i.next();
    String label = pbc.getLabel();
    boolean bv = lableInArrayList(label, al);
    pbc.setVisible(bv);
    pbc.setActive(bv);
    } catch (Exception e) {
    where list "children" is returned as null, thus the null pointer exception when I tried to get an iterator.
    How come?
    2. When using SPNEGO single sign on, there is no straightforward and sure way to tell whether the request is (a) first time hit (i.e. session is new) or (b) is a hit after the session expires (i.e. the session is new again but I lost all pageflow state etc.). I could use request.getQueryString() as an indicator for (b) because the query string wouldn't be null vs. first hit http://.../abc.portal (without any query string). My question is: is this method request.getQueryString() a reliable way to indicate (b)?
    Thanks in advance!

  • How to pass parameter to action methods

    Hi,
    I have a button.  Enter action method is associated with this.  In the Enter action method, I have added a parameter named param1.  When the button is clicked, this method is called automatically.  But how do I pass parameters to this method, which I have declared ?
    Regards,
    Suresh.

    Hi Suresh Babu,
    The associated method (Event Handler) is triggered by default and cannot pass the values. Instead, use the context node or attributes to set/get the values in the event handler method.
    Regards,
    Sravan Varagani

  • How to make Navigation and Topic panes scroll independently?

    Can anyone suggest how to make the default Multiscreen HTML layout navigation and topic panes to scroll independently, to accomidate a long index or TOC? Currently, scrolling toward the end of the index, for example, causes the topic pane to scroll also. Selecting an index entry scrolls the topic to the location of the appropriate content, but also scroll the index, taking the selected entry out of view. I would like independent scrolling of nav pane and topic panes.
    I'm using RoboHelp HTML 10, FrameMaker 11, TCS4.
    Thanks you.

    Your post has been moved to the Multiscreen forum. That does not change the link.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • How to get class and use method on it

    Hi,
    class State {
            String name
            Enum expectedValue
            public State(String name,Enum expectedValue){
                this.name = name;
                this.expectedValue = expectedValue;
    In the same class I need to have a method that takes a String and it should return matching
    Enum value. Since  class already have the expectedValue my idea is to get the Enum class ( using that if possible) and
    the call get() on it see my example below;
    Example:
    expectedValue is HwState.UPGRADED;
        public HwState convertActualToStateType( String actual){
            return  HwState.get(Integer.valueOf(actual));
    How can I get the Enum class (HwState) ? And then use it e.g. HwState.get() ?
    //mike

    Oracle is not allowing to Pesonlize the Buttons.

  • How to move styles and actions from PS CS3 to PS CC

    I have just signed up for Adobe Creative Cloud and Photoshop CC is downloading as I type this. I have been using PS CS3. I don't have a lot, but I do have a few styles (blending options) that I have used in a number of PS files. I also have a few actions set up. Is there some way to export/import these for use in PS CC? I have not yet un-installed CS3.
    Thanks!

    Nevermind, Done it!

  • How to isolate application and start freezing computer?

    For some reason, Firefox will randomly freeze my computer when playing videos.  Are there any sandbox type apps that I can open up FF in so it doesn't affect the entire system?

    , but it takes several minutes with a solid Internet connection.
    It should not take several minutes. Your mail should be sent instantly.
    Check your download speed here >  Ookla Speedtest - The Global Broadband Speed Test
    Please report back with the download speed.
    Keep in mind, with Mavericks installed, if at some point you need to restore OS X or repair the startup disk, that requires OS X Recovery which requires a broadband (high speed) connection as noted here > About OS X Recovery

  • External Task - prepared and commit method

    Hey guys,
    I have a problem with External Task. I don't know how make a prepared and commit method for use with J2EE Application Server.
    Anyone have an example?
    tks

    I am having some issue with the Externhal Task prepare and commit method,
    Actually I am ponting the interactive activity to external Task and in the external task i am getting instanceID , participantId and activity as query paramenters.Using those query paramemeters i am initalizing the ProcessServiceSession and then making call to prepareActivate Method as below.
    I am getting query string instnaceId value like " %2FScorecardChallenge%23Default-1.0%2F4%2F0 " .
    And I tried to call the IntsnaceID method InstanceId.getProcessId(instanceId), but this getProcessId method gives Null value.
    Is there any idea why i am getting the Null processID value for the instanceIdString " %2FScorecardChallenge%23Default-1.0%2F4%2F0 ".
    My sampel code looks like below ....
    String instanceId = this.getRequest().getParameter("instanceId");
                   String activity = this.getRequest().getParameter("activity");
                   String participantId = this.getRequest().getParameter("participantId");
                   this.getRequest().setAttribute("activity",activity);
                   this.getRequest().setAttribute("isFromBpm","true");
                   try
                        System.out.println("########### BPM params" + instanceId + " : " + activity + " : " +participantId);
                        ProcessServiceSession bpmSession = ConnectPAPI.createSession(participantId,this.getRequest().getRemoteHost());
                   String pid=InstanceId.getProcessId(instanceId);
                   System.out.println("Process ID value "+ pid);
                   System.out.println("Instance ID value "+ InstanceId.getInstanceId(instanceId));
                   System.out.println("Instance ID value "+ InstanceId.getInstanceIn(instanceId));
                        if(bpmSession != null)
                        {  try{
                                                                               Arguments args = bpmSession.activityPrepare(activity,instanceId,Arguments.create());
                                       Map argument =(Map) args.getArguments();
                                       Iterator it = argument.entrySet().iterator();
                                       while (it.hasNext()) {
                                       Map.Entry pairs = (Map.Entry)it.next();
                                       String key = (String)pairs.getKey();
                                       Object value = pairs.getValue();
                                       System.out.println("########### BPM args" + key + " : " + value + " : " );
    But my problem here is I am getting null pointer exception like below ( I found that null pointer exception is coming because processID ivelue is null).
    Stack Trace is output :
    Process ID value null
    Instance ID value %2FScorecardChallenge%23Default-1.0%2F4%2F0
    Instance ID value -1
    bpmSesssion instance details abstract class fuego.papi.ProcessServiceSesion
    bpmSesssion instance is not null
    java.lang.NullPointerException
         at fuego.directory.DirDeployedProcess.isConsolidatedId(DirDeployedProcess.java:114)
         at fuego.papi.impl.ProcessServiceSessionImpl.getProcessControl(ProcessServiceSessionImpl.java:2328)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGetInstance(ProcessServiceSessionImpl.java:1926)
         at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1128)
         at com.rollsroyce.gsp.poc.samplePOC.SamplePOCController.begin(SamplePOCController.java:57)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:879)
         at org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
         at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
         at org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)
         at org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)
         at org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:52)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:97)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2044)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:64)
         at org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor.wrapAction(ActionInterceptor.java:184)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.invoke(ActionInterceptors.java:50)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:58)
         at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:87)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2116)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:556)
         at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:853)
         at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631)
         at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    Please help me , is any knows the problem.........................................

  • Abstract class with set and get methods

    hi
    how to write set and get methods(plain methods) in an abstartc class
    ex: setUsername(String)
    String getUsername()
    and one class is extending this abstract class and same methods existing in that sub class also..... how to write......plz provide some ideas
    am new to programming....
    asap
    thnx in advance

    yes... as i told u.... i am new to coding......
    and my problem is ..... i have 2 classes one is abstract class without abstract methods.. and another class is extending abstract class.....
    in abstract class i have 2 methods...one is setusername(string) and getusername() ..... how to write these two methods.... in abstract class i have private variables username...... when user logins ..... i need to catch the user name and i need to validate with my oracle database and i need to identify the role of that user and based on role of that user i need to direct him to appropriate jsp page.......
    for that now i am writing business process classes..... the above mentioned two classes are from business process.....
    could u help me now
    thnx in advance

  • How Do I Locate An Action I Created In CS5?

    Hello Folks,
    How do I locate and action that I created in CS5, so I can load it into CS6?
    I am running CS5 and 6 using Mac OSX Snow Leopard
    I crearted two actions, but am now not sure where they reside, to load them into CS6
    Any help or suggestions would be appreciated.
    Jim

    Thanks for the helpful reply.
    Yes, I do still have CS5 installed an intact. I have launched it and I can find my actions within the action pane, and run them on a loaded image.
    When I click on either of my two actions, they attempt to run, without and image loaded and run with an image loaded. When I click on the fly out menu
    to try and save either of them, "save action" is greyed out.
    I've looked in every Adobe/Photoshop folder I can think of but can't seem to find either of them. I've also tried to use a spotlight search to locate them, but no luck.
    JIm

  • How to isolate a system to be upgraded?

    1) We are upgrading a system and being required to isolate the CI.
    2) Before we came to above point, we already were prompted to lock the development environment.
    Are 1) and 2) the same thing?
    If not, isolating a CI means what steps to be taken?
    Thanks a lot!  <removed_by_moderator>
    Edited by: Juan Reyes on Dec 8, 2009 8:36 PM

    Please check Trubleshooting guide. There is clearly desribed how to isolate CI and which steps need to be done.
    Pasted from guide:
    The troubleshooting and administration documentation is included in the upgrade program.
    The upgrade tool unpacks the documentation at the beginning of roadmap step Extraction.
    You can access the documentation as follows:
    - From a link on the upgrade GUI. Proceed as follows:
    1. If it is not running yet, start the upgrade program.
    2.On page http://<host name>:4239, choose ABAP documentation.
    3.Choose Troubleshooting and Administration for Systems Running on <platform>.
    OR:
    From file Troubleshooting_and_Administration_<platform>.pdf in directory UPG/abap/htdoc

  • Name space conflict between static and instance method

    Hello,
    there seems to be a very unfortunate name space conflict between static and instance method name. Consider:
    static String description() that should return a description of a class.
    String description() that should return a description of an instance.
    That seems to confuse the compiler. How come? Static and instance methods don't have anything to get confused about.
    Thanks for any insights :-)

    Umm...jeez.
    It's not a bug, it's the way it's supposed to be.
    Since a static method can be called the same way an instance method
    A instance = new A();
    A.staticMethod();
    instance.staticMethod();it's not allowed.
    Also in the class, you can call
    public void myMethod() {
          instanceMethodInClass();        // You don't need this, it's superfluous
          staticMethodInClass();          // You don't need the class name.
    }If you didn't understand, then just accept the fact that it is so. Some day you'll understand it.

  • How do I drag and drop an action onto a task flow?

    In How to pass View Object bind variable from ADF page John states that
    You should also consider dragging-and-dropping the executeWithParams operation on your task flow and wiring it to occur before your page instead of putting it in the page definition of the page itself - this way it is more clear what is happening, and is the recommended approach for 11g apps. When you drag-and-drop the operation, you can use the dialog to bind the parameter to your page-flow-scoped variable by supplying the proper EL there.
    How can I drag and drop the executeWithParams method onto a task flow. I am using 11.1.1.5.0 on LINUX?
    I'm presuming I a need a method action in my page flow.
    I have the following action defined in my page def file:
    <action IterBinding="localizedCustomerHierarchyViewIterator"
    id="executeQueryWithParamsForLocalizedCustomerHierarchyView"
    InstanceName="BusinessRulesAMDataControl.LocalizedCustomerHierarchyView"
    DataControl="BusinessRulesAMDataControl" RequiresUpdateModel="true"
    Action="executeWithParams">
    <NamedData NDName="RootEntityId"
    NDValue="#{pageFlowScope.recommendationRule.customerEntityId"
    NDType="java.lang.Long" NDOption="3"/>
    <NamedData NDName="Language"
    NDValue="#{pageFlowScope.recommendationRule.language}"
    NDType="java.lang.String" NDOption="3"/>
    </action>

    In summary, it appears you need the following artifacts in order to initialize a view object from parameters before rendering a .jsff view that relies on that view
    1) a method-call in task flow.xml file:
    <method-call id="executeWithParamsLocalizedCustomerHierarchyView">
    <method id="__5">#{bindings.executeWithParamsLocalizedCustomerHierarchyView.execute}</method>
    <outcome id="__12">
    <fixed-outcome id="__9">initializedLocalizedCustomerHierarchy</fixed-outcome>
    </outcome>
    </method-call>
    2) a control flow rule in the task flow .xml file whose source is (1) and whose destination is the view for which you want to intiialize a view object that supports an iterator that is bound to a list, tree, etc.
    3) an entry for the execute action in the databindings.cpx file
    <page path="/WEB-INF/[email protected]calizedCustomerHierarchyView"
    usageId="oracle_apps_br_view_RecommendationRulePFPageDef"/>
    4) the page def must be defined in the databindings.cpx file
    5) the page def needs to define action and iterator and list (or otherwise) that is used in UI.
    <iterator id="localizedCustomerHierarchyViewIterator"
    Binds="LocalizedCustomerHierarchyView"
    DataControl="BusinessRulesAMDataControl" RangeSize="25" Refresh="never">
    <sortCriteria>
    <sort attribute="Level" ascending="true"/>
    </sortCriteria>
    </iterator>
    <action IterBinding="localizedCustomerHierarchyViewIterator"
    id="executeWithParamsLocalizedCustomerHierarchyView"
    InstanceName="BusinessRulesAMDataControl.LocalizedCustomerHierarchyView"
    DataControl="BusinessRulesAMDataControl" RequiresUpdateModel="true"
    Action="executeWithParams">
    <NamedData NDName="RootEntityId"
    NDValue="#{pageFlowScope.recommendationRule.customerEntityId}"
    NDType="java.lang.Long"/>
    <NamedData NDName="Language"
    NDValue="#{pageFlowScope.recommendationRule.language}"
    NDType="java.lang.String"/>
    </action>
    <list ListOperMode="navigation"
    IterBinding="localizedCustomerHierarchyViewIterator"
    id="customerLocalizedEntityHierarchyList">
    <AttrNames>
    <Item Value="EntityName"/>
    </AttrNames>
    </list>
    6) a backing bean that provides the functions to initialize the parameters for execution
    The easiest way to get most of this is to drag the ExecuteWithParams from within the view in the datacontrols panel right onto the task flow diagram. The downside is that you are left with some pretty poorly named artifacts...
    Did I miss anything?
    -Klaus
    Edited by: klaus gross on Sep 29, 2011 1:00 PM

  • How to call navigation action?

    Hello
    I'm using JDeveloper 11g 10.1.1.3
    I need to call navigation action on double click on the row of table.
    I know how to use clientListener and serverListener, but I can't call navigation action (it is described in adfc-config.xml) from serverListener's method.
    How could I do that?
    Anatolii

    After some time spended with all this staff, now I have a problem.
    I have a page builded on a pageTemplate.
    Inside this page I have one region with the bounded task flow "users" with table of users.
    I created a button "btEditUser" and set action "toEditUser".
    When I click on this button, I go to the nested task flow "editUser" (the page of editing user).
    Next, I want to do that action after dblClick of the mouse button on the row of the table.
    So, I created a clientListener and serverListener.
    After processing some code (looking for selected row) the serverListener method processes next code:
            ActionEvent actionEvent = new ActionEvent(btEditUser);
            actionEvent.queue();(The button "btEditUser" is binded to the "btEditUser" attribute of my backing bean.)
    This code is really processes (I traced that in the debagger), but nothing happens - after all I'm still on the first page.
    I compared the logs of both variants of this action and found, that in the case with serverListener after processing this code i have next message:
    <PartialPageContextImpl><<init>> PPR is about to render without any targetsWhat could it be?
    Anatolii

Maybe you are looking for