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