From 9602711fffa9961ae07b539e2915fd3127db88f9 Mon Sep 17 00:00:00 2001 From: remm Date: Tue, 31 Oct 2006 21:47:45 +0000 Subject: [PATCH] - Better impl of JSP id consumer: actually this was implemented for regular custom tags, but not for simple tags. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@469669 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/jasper/compiler/Generator.java | 21 ++++++++++----------- java/org/apache/jasper/compiler/Node.java | 6 ------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java index 457188e43..9a2dc1c8d 100644 --- a/java/org/apache/jasper/compiler/Generator.java +++ b/java/org/apache/jasper/compiler/Generator.java @@ -35,7 +35,6 @@ import java.util.Vector; import javax.el.MethodExpression; import javax.el.ValueExpression; -import javax.servlet.jsp.tagext.JspIdConsumer; import javax.servlet.jsp.tagext.TagAttributeInfo; import javax.servlet.jsp.tagext.TagInfo; import javax.servlet.jsp.tagext.TagVariableInfo; @@ -2152,7 +2151,7 @@ class Generator { out.print(" "); out.print(tagHandlerVar); out.print(" = "); - if (isPoolingEnabled && !(JspIdConsumer.class.isAssignableFrom(tagHandlerClass))) { + if (isPoolingEnabled && !(n.implementsJspIdConsumer())) { out.print("("); out.print(tagHandlerClassName); out.print(") "); @@ -2306,7 +2305,7 @@ class Generator { .println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {"); out.pushIndent(); if (!n.implementsTryCatchFinally()) { - if (isPoolingEnabled && !(JspIdConsumer.class.isAssignableFrom(n.getTagHandlerClass()))) { + if (isPoolingEnabled && !(n.implementsJspIdConsumer())) { out.printin(n.getTagHandlerPoolName()); out.print(".reuse("); out.print(tagHandlerVar); @@ -2434,6 +2433,14 @@ class Generator { generateSetters(n, tagHandlerVar, handlerInfo, true); + // JspIdConsumer (after context has been set) + if (n.implementsJspIdConsumer()) { + out.printin(tagHandlerVar); + out.print(".setJspId(\""); + out.print(createJspId()); + out.println("\");"); + } + // Set the body if (findJspBody(n) == null) { /* @@ -2926,14 +2933,6 @@ class Generator { TagHandlerInfo handlerInfo, boolean simpleTag) throws JasperException { - // Set the id of the tag - if (JspIdConsumer.class.isAssignableFrom(n.getTagHandlerClass())) { - out.printin(tagHandlerVar); - out.print(".setJspId(\""); - out.print(n.getId()); - out.println("\");"); - } - // Set context if (simpleTag) { // Generate alias map diff --git a/java/org/apache/jasper/compiler/Node.java b/java/org/apache/jasper/compiler/Node.java index 6c5408973..f80a271e0 100644 --- a/java/org/apache/jasper/compiler/Node.java +++ b/java/org/apache/jasper/compiler/Node.java @@ -1354,8 +1354,6 @@ abstract class Node implements TagConstants { */ public static class CustomTag extends Node { - private static int id = 0; - private String uri; private String prefix; @@ -1626,10 +1624,6 @@ abstract class Node implements TagConstants { return this.numCount; } - public String getId() { - return "_" + (++id); - } - public void setScriptingVars(Vector vec, int scope) { switch (scope) { case VariableInfo.AT_BEGIN: -- 2.11.0