You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@shale.apache.org by Hermod Opstvedt <he...@opstvedt.com> on 2007/03/05 16:41:19 UTC

SV: [shale-validator] view controller - site navigation

Hi

I think you should do it like this:

Init-method
FacesContext facesContext = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler =
facesContext.getApplication().getNavigationHandler();
      navigationHandler.handleNavigation(facesContext,
"#{/faces/projekte.jsp}","successAufgaben");
 facesContext.renderResponse();

Your from view id has to match. Also note my previous mail about doing it
this way.

Hermod


-----Opprinnelig melding-----
Fra: gerrit [mailto:gerrit.scholz@deborate.de] 
Sendt: 5. mars 2007 13:10
Til: user@shale.apache.org
Emne: Re: [shale-validator] view controller - site navigation


This is the way I tried, but it works not for me. 

Init-method
FacesContext facesContext = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler =
facesContext.getApplication().getNavigationHandler();
      navigationHandler.handleNavigation(facesContext,
"#{projekteFace.fake}","successAufgaben");
 facesContext.renderResponse();

faces-config.xml:

<navigation-rule>
    <from-view-id>/faces/projekte.jsp</from-view-id>
    <navigation-case>
        <from-outcome>successAufgaben</from-outcome>
        <to-view-id>/faces/aufgaben.jsp</to-view-id>
    </navigation-case>
 </navigation-rule>

The current page is projekte.jsp. My assumption was that after
renderResponce is executed the navigation rule is takes from the
faces-config.xml. After that aufgaben.jsp should be shown and not
projekte.jsp.



craigmcc wrote:
> 
> It actually is possible to navigate from init(), but you have to do a
> bit more work:
> 
>     FacesContext context = FacesContext.getCurrentInstance();
>     NavigationHandler nh =
> context.getApplication().getNavigationHandler();
>     String fromAction = "#{...}"; // Fake expression for the action
> you pretend executed
>     String outcome = "..."; // Fake outcome from the fake action
>     nh.handleNavigation(context, fromAction, outcome);
>     context.renderResponse(); // Skip directly to Render Response phase
> 
> The current view, plus the values you specify for fromAction and
> outcome, are fed into the standard navigation rules processing and a
> new view will be selected based on those rules (or the current view
> redisplayed if no rule matches).  The call to renderResponse() causes
> the remainder of the lifecycle for the current page to be skipped.
> 
> From an architectural viewpoint, something to consider is whether it
> makes sense to load data in the prerender() event instead of init().
> The advantage is that this will only be executed if this is the page
> that will really be rendered -- if you navigated elsewhere, you won't
> pay the performance cost of loading data that will not be used.  The
> disadvantage is that, by the time prerender() is called, you are
> committed to rendering this page and you cannot navigate anywhere
> else.
> 
> Craig
> 
>>
>> -----Original Message-----
>> From: gerrit [mailto:gerrit.scholz@deborate.de]
>> Sent: Friday, March 02, 2007 9:51 AM
>> To: user@shale.apache.org
>> Subject: view controller - site navigation
>>
>>
>>
>> I use the shale view controller init() method to make standard site
>> validations and load data.
>> The init-Method has no return value and so no navigation rule is
>> executed.
>> If one of my validation methods or the load data method returns an error
>> I'd
>> like execute navigation rules. The reason is to go to a special error
>> page.
>> Is there a possibility to navigate to another page from the init-method?
>>
>> --
>> View this message in context:
>>
http://www.nabble.com/view-controller-%E2%80%93-site-navigation-tf3332431.ht
ml#a9266099
>> Sent from the Shale - User mailing list archive at Nabble.com.
>>
>>
>>
>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> *
>>
>> This email with attachments is solely for the use of the individual or
>> entity to whom it is addressed. Please also be aware that DnB NOR cannot
>> accept any payment orders or other legally binding correspondence with
>> customers as a part of an email.
>>
>> This email message has been virus checked by the anti virus programs used
>> in the DnB NOR Group.
>>
>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> *
>>
>>
> 
> 

-- 
View this message in context:
http://www.nabble.com/view-controller-%E2%80%93-site-navigation-tf3332431.ht
ml#a9310294
Sent from the Shale - User mailing list archive at Nabble.com.