On 3/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hi
Welcome to JavaServer Faces and post :) - The post goes back to the current
page but you render a diferent page on return. So you will most likely always
be one page behind in the url. The exception to the case is when you submit to
the same page twice.
You can also get the URL in the browser to change by doing a redirect
(embed <redirect/> inside your navigation case), at the cost that you
cannot use request scope to pass information from the origin page to
the destination page.
Hermod
Craig
-----Original Message-----
From: gerrit [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 06, 2007 10:04 AM
To: user@shale.apache.org
Subject: Re: [shale-validator] view controller – site navigation
Hi
If I output the view root ViewId I get the following:
ViewRoot1: /faces/projekte.jsp
ViewRoot2: /faces/aufgaben.jsp
FacesContext facesContext = FacesContext.getCurrentInstance();
log.debug("ViewRoot1: "+facesContext.getViewRoot().getViewId());
NavigationHandler navigationHandler =
facesContext.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(facesContext,
"#{/faces/projekte.jsp}","successAufgaben");
log.debug("ViewRoot2: "+facesContext.getViewRoot().getViewId());
facesContext.renderResponse();
So in my mind the navigation handler works correct. But on the browser
projekte.jsp is shown. If I press any button on this site, the navigation
behind this button is ignored and aufgaben.jsp is shown.
Gerrit
craigmcc wrote:
>
> On 3/2/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]
>> 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.html#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#a9328354
Sent from the Shale - User mailing list archive at Nabble.com.