Hello Bertrand,

Where is your Page2 code fragment called? Is in the page constructor, in a
page component onSubmit() method, or somewhere else?

My guess is that your code fragment is called in the page constructor. If
this is so, then:

  ·  I might expect the differences in behaviour you experience between
setResponsePage(WebPage.class) and using a RestartResponseException (as
always, I am open to contradiction).
  ·  If possible, can you move your code to a component onSubmit() method
(of Page2 or the previous page, if any)?



Bertrand Guay-Paquet wrote
> Hi,
> I have 2 pages, each with a feedback panel. Page2 does the following:
> setACookie();
> Session.get().info("blah");
> setResponsePage(Page1.class);
> The problem I have is that "blah" is never displayed in the feedback 
> panel of Page1. I stepped in the request processing code and found that 
> setResponsePage() actually renders the full current page before throwing 
> that away and issuing a 302 redirect. During this first (unused) 
> rendering of Page2, its feedback panel consumes all the session 
> messages. After the client follows the 302 and requests Page1, there are 
> no more session messages to display.
> Instead of setResponsePage, I can use a RestartResponseException to 
> redirect to Page1 and the session messages will then be displayed on 
> Page1 because Page2 is never rendered. However this has the important 
> downside of also throwing away all header information (e.g. cookies like 
> setACookie() above).
> Is there a way to both set a cookie and display the session message on 
> the response page?
> Bonus!
> I'm also wondering why, when setResponsePage() is used, the current page 
> is still rendered. I can think of 3 reasons why this should be avoided:
> 1-Performance; it's wasteful to render components to discard them right
> away
> 2-Components hierarchy; even if setResponsePage() is used in a page 
> constructor (e.g. when redirecting depending on page parameters), since 
> the page is rendered, all of its components or some substitutes must be 
> added to the page. Otherwise Wicket will throw a missing component 
> exception in dev mode.
> 3-My use case; feedback messages registered in the session can be 
> swallowed by a feedback panel in the thrown away page rendering.
> Of course, I definitely don't have the complete picture and am just now 
> making some sense of how Wicket handles redirects and responses.
> Regards,
> Bertrand
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@.apache
> For additional commands, e-mail: users-help@.apache

View this message in context: 
Sent from the Users forum mailing list archive at Nabble.com.

To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to