Author: remm Date: Thu Oct 26 17:24:37 2006 New Revision: 468205 URL: http://svn.apache.org/viewvc?view=rev&rev=468205 Log: - Implement the JspIdConsumer feature.
Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java?view=diff&rev=468205&r1=468204&r2=468205 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java Thu Oct 26 17:24:37 2006 @@ -35,6 +35,7 @@ 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; @@ -2151,7 +2152,7 @@ out.print(" "); out.print(tagHandlerVar); out.print(" = "); - if (isPoolingEnabled) { + if (isPoolingEnabled && !(JspIdConsumer.class.isAssignableFrom(tagHandlerClass))) { out.print("("); out.print(tagHandlerClassName); out.print(") "); @@ -2305,7 +2306,7 @@ .println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {"); out.pushIndent(); if (!n.implementsTryCatchFinally()) { - if (isPoolingEnabled) { + if (isPoolingEnabled && !(JspIdConsumer.class.isAssignableFrom(n.getTagHandlerClass()))) { out.printin(n.getTagHandlerPoolName()); out.print(".reuse("); out.print(tagHandlerVar); @@ -2835,7 +2836,7 @@ sb.append(getJspContextVar()); sb.append(".getELContext()"); sb.append(")"); - } + } attrValue = sb.toString(); } else if (attr.isDeferredMethodInput() || MethodExpression.class.getName().equals(type)) { @@ -2925,6 +2926,14 @@ 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 Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java?view=diff&rev=468205&r1=468204&r2=468205 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Node.java Thu Oct 26 17:24:37 2006 @@ -1354,6 +1354,8 @@ */ public static class CustomTag extends Node { + private static int id = 0; + private String uri; private String prefix; @@ -1624,6 +1626,10 @@ return this.numCount; } + public String getId() { + return "_" + (++id); + } + public void setScriptingVars(Vector vec, int scope) { switch (scope) { case VariableInfo.AT_BEGIN: --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]