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]