in 2.0 this is be default not a problem anymore. (the pagemap checker is disabled by default because it is not needed)
Maybe if people do keep problems with this we should backport that change to 1.3 or something like that.

johan


On 6/21/06, Matej Knopp <[EMAIL PROTECTED]> wrote:
Yes, null is all right.

For every page the _javascript_ checks, whether it's opened in new
window/tab (therefore the cookie). If so, new pagemap is created, page
is cloned into the new pagemap and the browser tab/window is redirected
to the page in new pagemap).

-Matej

Ittay Dror wrote:
> one other question. the original page map name is still 'null'. is this ok?
>
> Ittay Dror wrote:
>> ok, i did the same magic in my coding strategy and it works. in new tabs
>> the url now looks like
>> http://localhost/page/SomePage?wicket:bookmarkablePage=wicket-0:com.package.SomePage
>>
>>
>> can someone explain the mechanism to me? also, why should i take care of
>> this and not WebRequestCodingStrategy?
>>
>> thanx,
>> ittay
>>
>> Ittay Dror wrote:
>>> well, this is the code in WebRequestCodingStrategy:
>>> public final CharSequence encode(final RequestCycle requestCycle,
>>>             final IRequestTarget requestTarget)
>>>     {
>>>         // first check whether the target was mounted
>>>         CharSequence path = pathForTarget(requestTarget);
>>>         if (path != null)
>>>         {
>>>             CharSequence prefix = urlPrefix(requestCycle);
>>>             final AppendingStringBuffer buffer = new
>>> AppendingStringBuffer(prefix.length()
>>>                     + path.length());
>>>             buffer.append(prefix);
>>>             buffer.append(path);
>>>             return requestCycle.getOriginalResponse().encodeURL(buffer);
>>>         }
>>>         ....
>>>
>>> the page (target) is indeed mounted, so pathForTarget goes to the
>>> encoding strategy to encode the path. in case the target was not
>>> mounted, it would have encoded the url itself (in my case, the target
>>> is IBookmarkablePageRequestTarget)
>>>
>>> the code there is less than trivial, should i copy & paste? can i
>>> reference it somehow?
>>>
>>>
>>> ittay
>>>
>>>
>>> Matej Knopp wrote:
>>>> Hmm.. The problem with this kind of bugs is that it's very difficult
>>>> to reproduce.
>>>>
>>>> IMHO The problem is in this line:
>>>> else {document.location.href ="">>>>> '/page/SomePage;jsessionid=E43E09C7B61190F3C8C5E98CB988F21F?';}
>>>>
>>>> The url should contain pagemap name (something like wicket-1).
>>>>
>>>> In wicket-1.2 the url is built in PageMapChecker#renderHead
>>>> (WebPage.java line 388 -
>>>> IBookmarkablePageRequestTarget current =
>>>> (IBookmarkablePageRequestTarget)target;
>>>> BookmarkablePageRequestTarget redirect = new
>>>> BookmarkablePageRequestTarget(
>>>> getSession().createAutoPageMapName(), current.getPageClass(),
>>>> current.getPageParameters ());
>>>> url = "">>>>> )
>>>>
>>>> I wonder why the generated url doesn't contain the pageMap name.
>>>>
>>>> -Matej
>>>>
>>>> Ittay Dror wrote:
>>>>> further investigation shows that for IE and openning new windows, it
>>>>> works fine - a PageMap instance is created, and the page loads fine.
>>>>>
>>>>> i've also started firefox with a new profile (no extensions), to
>>>>> make sure it's not extension related, and no, it happens there also,
>>>>> and also when i open a new window instead of new tab. it seems to be
>>>>> related to differences in cookie (session) handling between firefox
>>>>> and IE.
>>>>> ittay
>>>>>
>>>>> Ittay Dror wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm using firefox. when i duplicate a tab, the tab reloads in an
>>>>>> infinite loop.
>>>>>>
>>>>>> this is the reason:
>>>>>> <script type="text/_javascript_"><!--//--><![CDATA[//><!--
>>>>>> var pagemapcookie = getWicketCookie('pm-nullwicket');
>>>>>> if(!pagemapcookie && pagemapcookie !=
>>>>>> '1'){setWicketCookie('pm-nullwicket',1);}
>>>>>> else {document.location.href ="">>>>>>> '/page/SomePage;jsessionid=E43E09C7B61190F3C8C5E98CB988F21F?';}
>>>>>>
>>>>>> //--><!]]></script>
>>>>>>
>>>>>> </head>
>>>>>> <body
>>>>>>
>>>>>>
>>>>>> what happens is that the pagemapcookie is there when the page is
>>>>>> rendered, because the previous page was not unloaded, so the
>>>>>> document's href is changed to itself. of course, when the page
>>>>>> loads, the cookie is still 1, so the loop continues. the same will
>>>>>> happen if i just open a new tab and load the same url.
>>>>>>
>>>>>> what gives?
>>>>>>
>>>>>>
>>>>>> also, the code that writes this script is WebPage.PageMapChecker
>>>>>> the comment in the code is:
>>>>>> /**
>>>>>>      * Tries to determine whether this page was opened in a new
>>>>>> window or tab.
>>>>>>      * If it is (and this checker were able to recognize that), a
>>>>>> new page map
>>>>>>      * is created for this page instance, so that it will start
>>>>>> using it's own
>>>>>>      * history in sync with the browser window or tab.
>>>>>>      */
>>>>>>
>>>>>> i've tried to debug this, but it doesn't look like a new PageMap is
>>>>>> created (i don't use it, so the PageMap instance is the default
>>>>>> one). so it seems i *don't* get a history per tab.
>>>>>> can/should i remove the AutomaticMultiWindowSupport setting?
>>>>>> thanx,
>>>>>> ittay
>>>>
>>>> _______________________________________________
>>>> Wicket-user mailing list
>>>> Wicket-user@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>
>>>
>>
>
>



_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to