public class org.springframework.web.servlet.tags.UrlTag extends org.springframework.web.servlet.tags.HtmlEscapingAwareTag implements org.springframework.web.servlet.tags.ParamAware
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.servlet.tags.UrlTag
super_class: org.springframework.web.servlet.tags.HtmlEscapingAwareTag
{
private static final java.lang.String URL_TEMPLATE_DELIMITER_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{"
private static final java.lang.String URL_TEMPLATE_DELIMITER_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "}"
private static final java.lang.String URL_TYPE_ABSOLUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "://"
private java.util.List<org.springframework.web.servlet.tags.Param> params;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/springframework/web/servlet/tags/Param;>;
private java.util.Set<java.lang.String> templateParams;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Ljava/lang/String;>;
private org.springframework.web.servlet.tags.UrlTag$UrlType type;
descriptor: Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String value;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String context;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String var;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private int scope;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean javaScriptEscape;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.web.servlet.tags.HtmlEscapingAwareTag.<init>:()V
1: aload 0
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield org.springframework.web.servlet.tags.UrlTag.params:Ljava/util/List;
2: aload 0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putfield org.springframework.web.servlet.tags.UrlTag.templateParams:Ljava/util/Set;
3: aload 0
iconst_1
putfield org.springframework.web.servlet.tags.UrlTag.scope:I
4: aload 0
iconst_0
putfield org.springframework.web.servlet.tags.UrlTag.javaScriptEscape:Z
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/servlet/tags/UrlTag;
public void setValue(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "://"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
1: aload 0
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.ABSOLUTE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
putfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
2: aload 0
aload 1
putfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
3: goto 10
4: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
5: aload 0
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.CONTEXT_RELATIVE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
putfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
6: aload 0
aload 1
putfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.RELATIVE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
putfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
9: aload 0
aload 1
putfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 11 1 value Ljava/lang/String;
MethodParameters:
Name Flags
value
public void setContext(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
1: aload 0
aload 1
putfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 5 1 context Ljava/lang/String;
MethodParameters:
Name Flags
context
public void setVar(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.tags.UrlTag.var:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 2 1 var Ljava/lang/String;
MethodParameters:
Name Flags
var
public void setScope(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.springframework.web.util.TagUtils.getScope:(Ljava/lang/String;)I
putfield org.springframework.web.servlet.tags.UrlTag.scope:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 2 1 scope Ljava/lang/String;
MethodParameters:
Name Flags
scope
public void setJavaScriptEscape(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.web.servlet.tags.UrlTag.javaScriptEscape:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 2 1 javaScriptEscape Z
Exceptions:
throws javax.servlet.jsp.JspException
MethodParameters:
Name Flags
javaScriptEscape
public void addParam(org.springframework.web.servlet.tags.Param);
descriptor: (Lorg/springframework/web/servlet/tags/Param;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.params:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 2 1 param Lorg/springframework/web/servlet/tags/Param;
MethodParameters:
Name Flags
param
public int doStartTagInternal();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield org.springframework.web.servlet.tags.UrlTag.params:Ljava/util/List;
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.springframework.web.servlet.tags.UrlTag.templateParams:Ljava/util/Set;
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/servlet/tags/UrlTag;
Exceptions:
throws javax.servlet.jsp.JspException
public int doEndTag();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.web.servlet.tags.UrlTag.createUrl:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
invokevirtual org.springframework.web.servlet.tags.UrlTag.getRequestContext:()Lorg/springframework/web/servlet/support/RequestContext;
invokevirtual org.springframework.web.servlet.support.RequestContext.getRequestDataValueProcessor:()Lorg/springframework/web/servlet/support/RequestDataValueProcessor;
astore 2
start local 2 2: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getRequest:()Ljavax/servlet/ServletRequest;
astore 3
start local 3 3: aload 2
ifnull 5
aload 3
instanceof javax.servlet.http.HttpServletRequest
ifeq 5
4: aload 2
aload 3
checkcast javax.servlet.http.HttpServletRequest
aload 1
invokeinterface org.springframework.web.servlet.support.RequestDataValueProcessor.processUrl:(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/lang/String;
astore 1
5: StackMap locals: java.lang.String org.springframework.web.servlet.support.RequestDataValueProcessor javax.servlet.ServletRequest
StackMap stack:
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.var:Ljava/lang/String;
ifnonnull 10
6: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getOut:()Ljavax/servlet/jsp/JspWriter;
aload 1
invokevirtual javax.servlet.jsp.JspWriter.print:(Ljava/lang/String;)V
7: goto 11
8: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 9: new javax.servlet.jsp.JspException
dup
aload 4
invokespecial javax.servlet.jsp.JspException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.var:Ljava/lang/String;
aload 1
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.scope:I
invokevirtual javax.servlet.jsp.PageContext.setAttribute:(Ljava/lang/String;Ljava/lang/Object;I)V
11: StackMap locals:
StackMap stack:
bipush 6
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/web/servlet/tags/UrlTag;
1 12 1 url Ljava/lang/String;
2 12 2 processor Lorg/springframework/web/servlet/support/RequestDataValueProcessor;
3 12 3 request Ljavax/servlet/ServletRequest;
9 10 4 ex Ljava/io/IOException;
Exception table:
from to target type
6 7 8 Class java.io.IOException
Exceptions:
throws javax.servlet.jsp.JspException
java.lang.String createUrl();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No value set"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getRequest:()Ljavax/servlet/ServletRequest;
checkcast javax.servlet.http.HttpServletRequest
astore 1
start local 1 4: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getResponse:()Ljavax/servlet/ServletResponse;
checkcast javax.servlet.http.HttpServletResponse
astore 2
start local 2 5: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 6: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.CONTEXT_RELATIVE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
if_acmpne 14
7: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
ifnonnull 10
8: aload 3
aload 1
invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: goto 14
10: StackMap locals: javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse java.lang.StringBuilder
StackMap stack:
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
11: aload 3
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
iconst_0
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: goto 14
13: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.context:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.RELATIVE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
if_acmpeq 16
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.ABSOLUTE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
if_acmpeq 16
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 16
15: aload 3
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
aload 3
aload 0
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.value:Ljava/lang/String;
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.params:Ljava/util/List;
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.templateParams:Ljava/util/Set;
invokevirtual org.springframework.web.servlet.tags.UrlTag.replaceUriTemplateParams:(Ljava/lang/String;Ljava/util/List;Ljava/util/Set;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 3
aload 0
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.params:Ljava/util/List;
aload 0
getfield org.springframework.web.servlet.tags.UrlTag.templateParams:Ljava/util/Set;
aload 3
ldc "?"
invokevirtual java.lang.StringBuilder.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpne 18
iconst_1
goto 19
StackMap locals: org.springframework.web.servlet.tags.UrlTag javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder org.springframework.web.servlet.tags.UrlTag java.util.List java.util.Set
18: iconst_0
StackMap locals: org.springframework.web.servlet.tags.UrlTag javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder org.springframework.web.servlet.tags.UrlTag java.util.List java.util.Set int
19: invokevirtual org.springframework.web.servlet.tags.UrlTag.createQueryString:(Ljava/util/List;Ljava/util/Set;Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 21: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.type:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
getstatic org.springframework.web.servlet.tags.UrlTag$UrlType.ABSOLUTE:Lorg/springframework/web/servlet/tags/UrlTag$UrlType;
if_acmpeq 23
22: aload 2
aload 4
invokeinterface javax.servlet.http.HttpServletResponse.encodeURL:(Ljava/lang/String;)Ljava/lang/String;
astore 4
23: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 4
invokevirtual org.springframework.web.servlet.tags.UrlTag.htmlEscape:(Ljava/lang/String;)Ljava/lang/String;
astore 4
24: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.javaScriptEscape:Z
ifeq 25
aload 4
invokestatic org.springframework.web.util.JavaScriptUtils.javaScriptEscape:(Ljava/lang/String;)Ljava/lang/String;
goto 26
StackMap locals:
StackMap stack:
25: aload 4
StackMap locals:
StackMap stack: java.lang.String
26: astore 4
27: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/springframework/web/servlet/tags/UrlTag;
4 28 1 request Ljavax/servlet/http/HttpServletRequest;
5 28 2 response Ljavax/servlet/http/HttpServletResponse;
6 28 3 url Ljava/lang/StringBuilder;
21 28 4 urlStr Ljava/lang/String;
Exceptions:
throws javax.servlet.jsp.JspException
protected java.lang.String createQueryString(java.util.List<org.springframework.web.servlet.tags.Param>, java.util.Set<java.lang.String>, boolean);
descriptor: (Ljava/util/List;Ljava/util/Set;Z)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getResponse:()Ljavax/servlet/ServletResponse;
invokeinterface javax.servlet.ServletResponse.getCharacterEncoding:()Ljava/lang/String;
astore 4
start local 4 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 16
StackMap locals: org.springframework.web.servlet.tags.UrlTag java.util.List java.util.Set int java.lang.String java.lang.StringBuilder top java.util.Iterator
StackMap stack:
3: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.servlet.tags.Param
astore 6
start local 6 4: aload 2
aload 6
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 16
aload 6
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifeq 16
5: iload 3
ifeq 8
aload 5
invokevirtual java.lang.StringBuilder.length:()I
ifne 8
6: aload 5
ldc "?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: goto 9
8: StackMap locals: org.springframework.web.servlet.tags.UrlTag java.util.List java.util.Set int java.lang.String java.lang.StringBuilder org.springframework.web.servlet.tags.Param java.util.Iterator
StackMap stack:
aload 5
ldc "&"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: StackMap locals:
StackMap stack:
aload 5
aload 6
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
aload 4
invokestatic org.springframework.web.util.UriUtils.encodeQueryParam:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 6
invokevirtual org.springframework.web.servlet.tags.Param.getValue:()Ljava/lang/String;
ifnull 16
11: aload 5
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 5
aload 6
invokevirtual org.springframework.web.servlet.tags.Param.getValue:()Ljava/lang/String;
aload 4
invokestatic org.springframework.web.util.UriUtils.encodeQueryParam:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 16
14: StackMap locals:
StackMap stack: java.nio.charset.UnsupportedCharsetException
astore 8
start local 8 15: new javax.servlet.jsp.JspException
dup
aload 8
invokespecial javax.servlet.jsp.JspException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 8 end local 6 16: StackMap locals: org.springframework.web.servlet.tags.UrlTag java.util.List java.util.Set int java.lang.String java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
17: aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 18 1 params Ljava/util/List<Lorg/springframework/web/servlet/tags/Param;>;
0 18 2 usedParams Ljava/util/Set<Ljava/lang/String;>;
0 18 3 includeQueryStringDelimiter Z
1 18 4 encoding Ljava/lang/String;
2 18 5 qs Ljava/lang/StringBuilder;
4 16 6 param Lorg/springframework/web/servlet/tags/Param;
15 16 8 ex Ljava/nio/charset/UnsupportedCharsetException;
Exception table:
from to target type
9 13 14 Class java.nio.charset.UnsupportedCharsetException
Exceptions:
throws javax.servlet.jsp.JspException
Signature: (Ljava/util/List<Lorg/springframework/web/servlet/tags/Param;>;Ljava/util/Set<Ljava/lang/String;>;Z)Ljava/lang/String;
MethodParameters:
Name Flags
params
usedParams
includeQueryStringDelimiter
protected java.lang.String replaceUriTemplateParams(java.lang.String, java.util.List<org.springframework.web.servlet.tags.Param>, java.util.Set<java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/util/List;Ljava/util/Set;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.springframework.web.servlet.tags.UrlTag.pageContext:Ljavax/servlet/jsp/PageContext;
invokevirtual javax.servlet.jsp.PageContext.getResponse:()Ljavax/servlet/ServletResponse;
invokeinterface javax.servlet.ServletResponse.getCharacterEncoding:()Ljava/lang/String;
astore 4
start local 4 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 25
StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
2: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.servlet.tags.Param
astore 5
start local 5 3: new java.lang.StringBuilder
dup
ldc "{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 4: aload 1
aload 7
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 14
5: aload 3
aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getValue:()Ljava/lang/String;
astore 8
start local 8 7: aload 1
aload 7
8: aload 8
ifnull 9
aload 8
aload 4
invokestatic org.springframework.web.util.UriUtils.encodePath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto 10
StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String org.springframework.web.servlet.tags.Param java.util.Iterator java.lang.String java.lang.String
StackMap stack: java.lang.String java.lang.String
9: ldc ""
10: StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String org.springframework.web.servlet.tags.Param java.util.Iterator java.lang.String java.lang.String
StackMap stack: java.lang.String java.lang.String java.lang.String
invokestatic org.springframework.util.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
11: goto 25
12: StackMap locals:
StackMap stack: java.nio.charset.UnsupportedCharsetException
astore 9
start local 9 13: new javax.servlet.jsp.JspException
dup
aload 9
invokespecial javax.servlet.jsp.JspException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 end local 8 14: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "{/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
15: aload 1
aload 7
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 25
16: aload 3
aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getName:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
17: aload 5
invokevirtual org.springframework.web.servlet.tags.Param.getValue:()Ljava/lang/String;
astore 8
start local 8 18: aload 1
aload 7
19: aload 8
ifnull 20
aload 8
aload 4
invokestatic org.springframework.web.util.UriUtils.encodePathSegment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto 21
StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String org.springframework.web.servlet.tags.Param java.util.Iterator java.lang.String java.lang.String
StackMap stack: java.lang.String java.lang.String
20: ldc ""
21: StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String org.springframework.web.servlet.tags.Param java.util.Iterator java.lang.String java.lang.String
StackMap stack: java.lang.String java.lang.String java.lang.String
invokestatic org.springframework.util.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
22: goto 25
23: StackMap locals:
StackMap stack: java.nio.charset.UnsupportedCharsetException
astore 9
start local 9 24: new javax.servlet.jsp.JspException
dup
aload 9
invokespecial javax.servlet.jsp.JspException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 end local 8 end local 7 end local 5 25: StackMap locals: org.springframework.web.servlet.tags.UrlTag java.lang.String java.util.List java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
26: aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/springframework/web/servlet/tags/UrlTag;
0 27 1 uri Ljava/lang/String;
0 27 2 params Ljava/util/List<Lorg/springframework/web/servlet/tags/Param;>;
0 27 3 usedParams Ljava/util/Set<Ljava/lang/String;>;
1 27 4 encoding Ljava/lang/String;
3 25 5 param Lorg/springframework/web/servlet/tags/Param;
4 25 7 template Ljava/lang/String;
7 14 8 value Ljava/lang/String;
13 14 9 ex Ljava/nio/charset/UnsupportedCharsetException;
18 25 8 value Ljava/lang/String;
24 25 9 ex Ljava/nio/charset/UnsupportedCharsetException;
Exception table:
from to target type
7 11 12 Class java.nio.charset.UnsupportedCharsetException
18 22 23 Class java.nio.charset.UnsupportedCharsetException
Exceptions:
throws javax.servlet.jsp.JspException
Signature: (Ljava/lang/String;Ljava/util/List<Lorg/springframework/web/servlet/tags/Param;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
uri
params
usedParams
}
SourceFile: "UrlTag.java"
NestMembers:
org.springframework.web.servlet.tags.UrlTag$UrlType
InnerClasses:
private final UrlType = org.springframework.web.servlet.tags.UrlTag$UrlType of org.springframework.web.servlet.tags.UrlTag