Hi again, Martin.

I have thought about it. This dev list discussion is interesting. I
use static parameter converters in pages which is type safe but not
automatic.

I thought about your suggestion to use IPageFactory.

Suppose a page meets the constructor criteria(default, PageParameters)
for bookmarkable, and it is mapped.

We load it with

setResponsePage(new SomePage(someModel));

Now we get http://localhost:8080/wicket/page?2

because we did not do 

setResponsePage(SomePage.class, somePageParameters);

but we want to see

http://localhost:8080/SomeMountedBookmarkablePage?2

otherwise links break after expiry.

How do we get that?


Kind Regards,

Bernard


On Tue, 22 Jan 2013 10:16:42 +0200, you wrote:

>Hi,
>
>By default Wicket recognizes a page as bookmarkable if it has default
>constructor or a constructor with PageParameters as a single parameter.
>
>Check this thread that explains how you can do something similar as your
>requirement.
>http://markmail.org/thread/faoipbe6m6jh57ps
>
>
>On Tue, Jan 22, 2013 at 8:59 AM, Bernard <bht...@gmail.com> wrote:
>
>> Hi Martin,
>>
>> I now have second thoughts before replacing a page constructor having
>> an IModel parameter with the use of PageParameters which I need when
>> letting Wicket create the page. It can be a nightmare.
>>
>> Passing IModel server side on page constructon has many advantages. We
>> get security because the model cannot be manipulated by the client. We
>> get type safety because we don't need to wrap the model's key(s) into
>> PageParameters. And we get brevity and convenience which is a Wicket
>> plus. Could it be that expecting ModalWindow to have the same instance
>> as the parent page has to be seen in a different light?
>>
>> Please challenge me. I can't find at the moment any reference that
>> passing LDM in Page constructors is a bad thing. I always thought that
>> it is the Wicket way to exploit its statefulness.
>>
>> Back to the original subject, I would need a bookmarkable page that I
>> can still pass an IModel to - either in a constructor or via a
>> callback.
>>
>> So if the page is created from the bookmarkable URL and the page finds
>> that the session is expired then it cannot get the model from the
>> session but it can take corrective action. Otherwise we don't even
>> have a page because of the non-bookmarkable dilemma. This very
>> un-Wicket.
>>
>> In other words, if in a stateful web framework, we fail to identify
>> the page class (not its identity - it is expired) - only because we
>> were passing parameters to it server side - then this is a big issue
>> that would be rewarding to address. The framwork is completely blind
>> wrt to state even though the user can see the full state on the
>> screen.
>>
>> Should I open a Jira issue to address this?
>>
>> Kind Regards,
>>
>> Bernard
>>
>> On Mon, 21 Jan 2013 10:05:57 +0200, you wrote:
>>
>> >Hi,
>> >
>> >I think using Page#Page(IModel) constructor is not very useful. It appears
>> >to be anti-pattern lately.
>> >There were several tickets related to ModalWindow when a model is shared
>> >between the page that contains the modal and the page inside the modal.
>> The
>> >two different pages are being serialized with different state of the model
>> >and after deserialization this model is no more the same instance anymore
>> >and the benefit of sharing a model is no more there.
>> >
>> >If you still want to go the way you want then check IPageFactory and its
>> >default impl - DefaultPageFactory.
>> >
>> >
>> >
>> >On Mon, Jan 21, 2013 at 3:45 AM, Bernard <bht...@gmail.com> wrote:
>> >
>> >> Hi all
>> >>
>> >> I am searching for a robust pattern to work around
>> >> PageExpiredException.
>> >>
>> >> My first idea was to have all pages bookmarkable and rely on
>> >>
>> >>
>> org.apache.wicket.settings.IPageSettings#getRecreateMountedPagesAfterExpiry()
>> >> to recover.
>> >>
>> >> But this breaks when passing IModel in page constructors because then
>> >> pages are no longer bookmarkable.
>> >>
>> >> Of course avoiding the constructor and letting Wicket create the page
>> >> with PageParameters would solve this problem but I want to avoid this.
>> >>
>> >> It would be very useful to pass an IModel to a bookmarkable Page. How
>> >> can this be done?
>> >>
>> >> I am trying to avoid expiring logout links (the primary driver of all
>> >> this). In case of page expiry I can deal with the exceptional call of
>> >> the default constructor from
>> >> IPageSettings#getRecreateMountedPagesAfterExpiry() by responding with
>> >> a bookmarkable page.
>> >>
>> >> Many thanks,
>> >>
>> >> Bernard
>> >>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >>
>> >>
>>
>>


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

Reply via email to