Class UrlRenderer


  • public class UrlRenderer
    extends Object
    Takes care of rendering URLs.

    Normally Urls are rendered relative to the base Url. Base Url is normally Url of the page being rendered. However, during Ajax request and redirect to buffer rendering the BaseUrl needs to be adjusted.

    Author:
    Matej Knopp, Igor Vaynberg
    • Constructor Detail

      • UrlRenderer

        public UrlRenderer​(Request request)
        Construct.
        Parameters:
        request - Request that serves as the base for rendering urls
    • Method Detail

      • setBaseUrl

        public Url setBaseUrl​(Url base)
        Sets the base Url. All generated URLs will be relative to this Url.
        Parameters:
        base -
        Returns:
        original base Url
      • getBaseUrl

        public Url getBaseUrl()
        Returns the base Url.
        Returns:
        base Url
      • renderUrl

        public String renderUrl​(Url url)
        Renders the Url
        Parameters:
        url -
        Returns:
        Url rendered as string
      • renderFullUrl

        public String renderFullUrl​(Url url)
        Renders a full URL in the protocol://hostname:port/path format
        Parameters:
        url -
        Returns:
        rendered URL
      • resolvePort

        protected Integer resolvePort​(Url url)
        Gets port that should be used to render the url
        Parameters:
        url - url being rendered
        Returns:
        port or null if none is set
      • resolveHost

        protected String resolveHost​(Url url)
        Gets the host name that should be used to render the url
        Parameters:
        url - url being rendered
        Returns:
        the host name or null if none is set
      • resolveProtocol

        protected String resolveProtocol​(Url url)
        Gets the protocol that should be used to render the url
        Parameters:
        url - url being rendered
        Returns:
        the protocol or null if none is set
      • renderRelativeUrl

        public String renderRelativeUrl​(Url url)
        Renders the Url relative to currently set Base Url. This method is only intended for Wicket URLs, because the Url object represents part of URL after Wicket Filter. For general URLs within context use renderContextRelativeUrl(String)
        Parameters:
        url -
        Returns:
        Url rendered as string
      • shouldRenderAsFull

        protected boolean shouldRenderAsFull​(Url url)
        Determines whether a URL should be rendered in its full form
        Parameters:
        url -
        Returns:
        true if URL should be rendered in the full form
      • renderContextRelativeUrl

        public String renderContextRelativeUrl​(String url)
        Renders the URL within context relative to current base URL.
        Parameters:
        url -
        Returns:
        relative URL