You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@shale.apache.org by gerrit <ge...@deborate.de> on 2007/03/06 09:46:02 UTC

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

Hi 

The faces-config.xml was only a cutout. I have defined more navigation cases
so that different target methods had different outcomes. But I don’t
understand what you mean with “Deferring the outcome to the actual method to
be invoked”. Should I call a target method from the init method – this make
no sense for me. 

Gerrit   


Hermod Opstvedt wrote:
> 
> Hi
> 
> It definitely works, but from an architectural it does not feel right.
> Reason is that you may want different outcomes for different target
> methods.
> Deferring the outcome to the actual method to be invoked makes it cleaner
> in
> my mind.
> 
> Hermod
> 
> 
> -----Opprinnelig melding-----
> Fra: craigmcc@gmail.com [mailto:craigmcc@gmail.com] På vegne av Craig
> McClanahan
> Sendt: 5. mars 2007 06:43
> Til: user@shale.apache.org
> Emne: Re: view controller – site navigation
> 
> On 3/2/07, hermod.opstvedt@dnbnor.no <he...@dnbnor.no> wrote:
>> Hi
>>
>> I think the best way to achieve what you want is to raise a flag in the
> viewcontrollers init method. Then when the method that is supposed to be
> executed is called, you check for the flag at the beginning and return the
> outcome that corresponds to the error situatiuon.
>>
> 
> 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.html#a9328082
Sent from the Shale - User mailing list archive at Nabble.com.