/** * Gets the base url. * * @param pageClass * the page class * @param parameters * the parameters * @return the base url */ public static Url getBaseUrl(final Class<? extends Page> pageClass, final PageParameters parameters) { return RequestCycle.get().mapUrlFor(pageClass, parameters); }
/** * Returns a {@link Url} for the resource reference * <p> * <strong>Note</strong>: The produced URL is relative to the filter path. Application code most * probably need URL relative to the currently used page, for this use * {@linkplain #urlFor(org.apache.wicket.request.resource.ResourceReference, org.apache.wicket.request.mapper.parameter.PageParameters)} * </p> * * @param reference * resource reference * @param params * parameters for the resource or {@code null} if none * @return {@link Url} for the reference */ public Url mapUrlFor(ResourceReference reference, PageParameters params) { return mapUrlFor(new ResourceReferenceRequestHandler(reference, params)); }
/** * Returns a {@link Url} for the resource reference * <p> * <strong>Note</strong>: The produced URL is relative to the filter path. Application code most * probably need URL relative to the currently used page, for this use * {@linkplain #urlFor(org.apache.wicket.request.resource.ResourceReference, org.apache.wicket.request.mapper.parameter.PageParameters)} * </p> * * @param reference * resource reference * @param params * parameters for the resource or {@code null} if none * @return {@link Url} for the reference */ public Url mapUrlFor(ResourceReference reference, PageParameters params) { return mapUrlFor(new ResourceReferenceRequestHandler(reference, params)); }
/** * Returns the rendered URL for the request handler or <code>null</code> if the handler couldn't * have been rendered. * <p> * The resulting URL will be relative to current page. * * @param handler * @return Url String or <code>null</code> */ public CharSequence urlFor(IRequestHandler handler) { try { Url mappedUrl = mapUrlFor(handler); CharSequence url = renderUrl(mappedUrl, handler); return url; } catch (Exception x) { throw new WicketRuntimeException(String.format( "An error occurred while generating an Url for handler '%s'", handler), x); } }
/** * Returns the rendered URL for the request handler or <code>null</code> if the handler couldn't * have been rendered. * <p> * The resulting URL will be relative to current page. * * @param handler * @return Url String or <code>null</code> */ public CharSequence urlFor(IRequestHandler handler) { try { Url mappedUrl = mapUrlFor(handler); CharSequence url = renderUrl(mappedUrl, handler); return url; } catch (Exception x) { throw new WicketRuntimeException(String.format( "An error occurred while generating an Url for handler '%s'", handler), x); } }
/** * Returns a bookmarkable URL that references a given page class using a given set of page * parameters. Since the URL which is returned contains all information necessary to instantiate * and render the page, it can be stored in a user's browser as a stable bookmark. * <p> * <strong>Note</strong>: The produced URL is relative to the filter path. Application code most * probably need URL relative to the currently used page, for this use * {@linkplain #urlFor(Class, org.apache.wicket.request.mapper.parameter.PageParameters)} * </p> * * @param <C> * The type of the page * @param pageClass * Class of page * @param parameters * Parameters to page or {@code null} if none * @return Bookmarkable URL to page */ public final <C extends Page> Url mapUrlFor(final Class<C> pageClass, final PageParameters parameters) { IRequestHandler handler = new BookmarkablePageRequestHandler(new PageProvider(pageClass, parameters)); return mapUrlFor(handler); }
/** * Returns a bookmarkable URL that references a given page class using a given set of page * parameters. Since the URL which is returned contains all information necessary to instantiate * and render the page, it can be stored in a user's browser as a stable bookmark. * <p> * <strong>Note</strong>: The produced URL is relative to the filter path. Application code most * probably need URL relative to the currently used page, for this use * {@linkplain #urlFor(Class, org.apache.wicket.request.mapper.parameter.PageParameters)} * </p> * * @param <C> * The type of the page * @param pageClass * Class of page * @param parameters * Parameters to page or {@code null} if none * @return Bookmarkable URL to page */ public final <C extends Page> Url mapUrlFor(final Class<C> pageClass, final PageParameters parameters) { IRequestHandler handler = new BookmarkablePageRequestHandler(new PageProvider(pageClass, parameters)); return mapUrlFor(handler); }
/** * Get the absolute bookmarkable path of a page * * @param pageClass Page * @param pageParameters Optional page parameters * @return Bookmarkable path */ public static String absoluteMountPathForPage(Class<? extends Page> pageClass, PageParameters pageParameters) { HttpServletRequest req = getHttpServletRequest(); RequestCycle requestCycle = RequestCycle.get(); Url url = requestCycle.mapUrlFor(pageClass, pageParameters); String renderedUrl = url.toString(); renderedUrl = Strings.isEmpty(renderedUrl) ? "." : renderedUrl; return RequestUtils.toAbsolutePath(HttpUtils.getWebappContextUrl(req), requestCycle.getOriginalResponse().encodeURL(renderedUrl)); }
Url returnUrl = RequestCycle.get().mapUrlFor(getPage().getClass(), getPage().getPageParameters());