You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Peter Parson (JIRA)" <ji...@apache.org> on 2013/01/24 14:39:12 UTC

[jira] [Created] (WICKET-5004) Add light-weight possibility to generate URLs from Page and PageParameters without having the WebApplication actually running.

Peter Parson created WICKET-5004:
------------------------------------

             Summary: Add light-weight possibility to generate URLs from Page and PageParameters without having the WebApplication actually running.
                 Key: WICKET-5004
                 URL: https://issues.apache.org/jira/browse/WICKET-5004
             Project: Wicket
          Issue Type: Improvement
          Components: wicket
    Affects Versions: 6.5.0
            Reporter: Peter Parson


In certain scenarios it is useful to be able to generate wicket URLs without having the wicket application running, i.e. a mail notification system running which needs to include dynamic URLs in the mails, or an XML sitemap generator running on a different server.

With Wicket 1.3.x, this was an easy task: we just needed to (statically) provide the UrlRequestCodingStrategy, the PageClass and PageParameters and any other module depending on our wicket module could obtain the URLs.

With Wicket 6.x it's not so easy, it seems to be impossible without having the application actually running. I have found the solution I have described here: http://stackoverflow.com/questions/13015743/how-to-obtain-wicket-url-from-pageclass-and-pageparameters-without-running-wicke
But this seems to be a little hacky, and causes problems if executed multiple times (since the WebApplication is somewhere registered within the context, but cannot be destroyed)



A code example from our old (1.3.x) solution, to give you an idea of what we did.

We had a spring bean in our Wicket module which offered methods like this:

public String getUrlFor(MyDomainObject o) {
	Class pClass = MyDomainObjectTargetPage.class;
	PageParameters pp = MyDomainObjectTargetPage.pageParametersFor(o);
	IRequestTargetUrlCodingStrategy urlCodingStragy = MyDomainObjectTargetPage.URL_CODING_STRATEGY;
	BookmarkablePageRequestTarget target = new BookmarkablePageRequestTarget(pClass, pp);
	return "/" + urlCodingStragy.encode(target).toString()
}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira