You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Kent Tong <ke...@cpttm.org.mo> on 2011/09/13 08:00:10 UTC

why generate hybrid URL for stateless page?

Hi,

In 1.5 I found that even if a page is stateless, Wicket still generates
hybrid URLs (with PageInfo) for stateless links/forms. This is done in
AbstractBookmarkableMapper (see below). Any idea why? Thanks!


if (requestHandler instanceof BookmarkableListenerInterfaceRequestHandler)
{
	// listener interface URL with page class information
	BookmarkableListenerInterfaceRequestHandler handler =
(BookmarkableListenerInterfaceRequestHandler)requestHandler;
	Class<? extends IRequestablePage> pageClass = handler.getPageClass();
	if (!checkPageClass(pageClass))
	{
		return null;
	}
	Integer renderCount = null;
	if (handler.getListenerInterface().isIncludeRenderCount())
	{
		renderCount = handler.getRenderCount();
	}
	PageInfo pageInfo = new PageInfo(handler.getPageId());
	ComponentInfo componentInfo = new ComponentInfo(renderCount,
	requestListenerInterfaceToString(handler.getListenerInterface()),
				handler.getComponentPath(),
				handler.getBehaviorIndex());
	UrlInfo urlInfo = new UrlInfo(new PageComponentInfo(pageInfo,
componentInfo),
				pageClass, handler.getPageParameters());
	return buildUrl(urlInfo);
}



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


Re: why generate hybrid URL for stateless page?

Posted by Martin Grigorov <mg...@apache.org>.
Hi Kent,

Indeed the URL is hybrid but only the component info is actually used.
Since the page is stateless the page is not stored and the next
request recreates a new instance of this page class and uses the
component info (e.g. ILinkListener-form-link) to find the link and
execute its onClick method.

Maybe we can optimize this a bit by changing the page id to -1 and
don't do the lookup by page id when the link is clicked.
I.e. the generated url for components in stateless page will look
like: -1-1.ILinkListener-form-link

I'll experiment with that.

On Tue, Sep 13, 2011 at 9:00 AM, Kent Tong <ke...@cpttm.org.mo> wrote:
> Hi,
>
> In 1.5 I found that even if a page is stateless, Wicket still generates
> hybrid URLs (with PageInfo) for stateless links/forms. This is done in
> AbstractBookmarkableMapper (see below). Any idea why? Thanks!
>
>
> if (requestHandler instanceof BookmarkableListenerInterfaceRequestHandler)
> {
>        // listener interface URL with page class information
>        BookmarkableListenerInterfaceRequestHandler handler =
> (BookmarkableListenerInterfaceRequestHandler)requestHandler;
>        Class<? extends IRequestablePage> pageClass = handler.getPageClass();
>        if (!checkPageClass(pageClass))
>        {
>                return null;
>        }
>        Integer renderCount = null;
>        if (handler.getListenerInterface().isIncludeRenderCount())
>        {
>                renderCount = handler.getRenderCount();
>        }
>        PageInfo pageInfo = new PageInfo(handler.getPageId());
>        ComponentInfo componentInfo = new ComponentInfo(renderCount,
>        requestListenerInterfaceToString(handler.getListenerInterface()),
>                                handler.getComponentPath(),
>                                handler.getBehaviorIndex());
>        UrlInfo urlInfo = new UrlInfo(new PageComponentInfo(pageInfo,
> componentInfo),
>                                pageClass, handler.getPageParameters());
>        return buildUrl(urlInfo);
> }
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

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