类 UrlTag

  • 所有已实现的接口:
    Serializable, IterationTag, JspTag, Tag, TryCatchFinally, ParamAware

    public class UrlTag
    extends HtmlEscapingAwareTag
    implements ParamAware
    The <url> tag creates URLs. Modeled after the JSTL c:url tag with backwards compatibility in mind.

    Enhancements to the JSTL functionality include:

    • URL encoded template URI variables
    • HTML/XML escaping of URLs
    • JavaScript escaping of URLs

    Template URI variables are indicated in the 'value' attribute and marked by braces '{variableName}'. The braces and attribute name are replaced by the URL encoded value of a parameter defined with the spring:param tag in the body of the url tag. If no parameter is available the literal value is passed through. Params matched to template variables will not be added to the query string.

    Use of the spring:param tag for URI template variables is strongly recommended over direct EL substitution as the values are URL encoded. Failure to properly encode URL can leave an application vulnerable to XSS and other injection attacks.

    URLs can be HTML/XML escaped by setting the 'htmlEscape' attribute to 'true'. Detects an HTML escaping setting, either on this tag instance, the page level, or the web.xml level. The default is 'false'. When setting the URL value into a variable, escaping is not recommended.

    Example usage:

    <spring:url value="/url/path/{variableName}">
       <spring:param name="variableName" value="more than JSTL c:url" />
     </spring:url>

    The above results in: /currentApplicationContext/url/path/more%20than%20JSTL%20c%3Aurl

    从以下版本开始:
    3.0
    作者:
    Scott Andrews
    另请参阅:
    ParamTag, 序列化表格
    • 构造器详细资料

    • 方法详细资料

      • setValue

        public void setValue​(String value)
        Set the value of the URL.
      • setContext

        public void setContext​(String context)
        Set the context path for the URL. Defaults to the current context.
      • setVar

        public void setVar​(String var)
        Set the variable name to expose the URL under. Defaults to rendering the URL to the current JspWriter.
      • setScope

        public void setScope​(String scope)
        Set the scope to export the URL variable to. This attribute has no meaning unless var is also defined.
      • addParam

        public void addParam​(Param param)
        从接口复制的说明: ParamAware
        Callback hook for nested spring:param tags to pass their value to the parent tag.
        指定者:
        addParam 在接口中 ParamAware
        参数:
        param - the result of the nested spring:param tag
      • createQueryString

        protected String createQueryString​(List<Param> params,
                                           Set<String> usedParams,
                                           boolean includeQueryStringDelimiter)
                                    throws JspException
        Build the query string from available parameters that have not already been applied as template params.

        The names and values of parameters are URL encoded.

        参数:
        params - the parameters to build the query string from
        usedParams - set of parameter names that have been applied as template params
        includeQueryStringDelimiter - true if the query string should start with a '?' instead of '&'
        返回:
        the query string
        抛出:
        JspException
      • replaceUriTemplateParams

        protected String replaceUriTemplateParams​(String uri,
                                                  List<Param> params,
                                                  Set<String> usedParams)
                                           throws JspException
        Replace template markers in the URL matching available parameters. The name of matched parameters are added to the used parameters set.

        Parameter values are URL encoded.

        参数:
        uri - the URL with template parameters to replace
        params - parameters used to replace template markers
        usedParams - set of template parameter names that have been replaced
        返回:
        the URL with template parameters replaced
        抛出:
        JspException