You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2002/08/12 19:55:45 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspFragmentHelper.java PageContextImpl.java
kinman 2002/08/12 10:55:45
Modified: jasper2/src/share/org/apache/jasper/compiler Generator.java
jasper2/src/share/org/apache/jasper/runtime
JspFragmentHelper.java PageContextImpl.java
Log:
- Mods with spec api changes.
- Fix problems when tag files needs page context.
Revision Changes Path
1.65 +26 -21 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
Index: Generator.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- Generator.java 8 Aug 2002 20:41:02 -0000 1.64
+++ Generator.java 12 Aug 2002 17:55:45 -0000 1.65
@@ -1001,7 +1001,11 @@
out.print( pageParam );
printParams(n, pageParam, page.isLiteral());
out.println(");");
- out.printil((methodNesting > 0)? "return true;": "return;");
+ if (isTagFile) {
+ out.printil("throw new javax.servlet.jsp.SkipPageException();");
+ } else {
+ out.printil((methodNesting > 0)? "return true;": "return;");
+ }
out.popIndent();
out.printil("}");
@@ -1445,7 +1449,6 @@
makeAttr("java_archive", archive);
out.printil("out.write(" +
quote(s0) + s1 + s2 + " + " + quote(s3) + ");");
- out.printil("out.write(\"\\n\");");
/*
* Generate a 'attr = "value"' for each <jsp:param> in plugin body
@@ -1764,7 +1767,7 @@
// Store varReader in appropriate scope
if (varReader != null) {
String scopeName = n.getAttributeValue("scope");
- out.printin("getJspContext().setAttribute(");
+ out.printin("pageContext.setAttribute(");
out.print(quote(varReader));
out.print(", new java.io.StringReader(sout.toString())");
if (scopeName != null) {
@@ -1812,13 +1815,13 @@
String name = tagVars[i].getNameGiven();
if (name != null) {
out.print(quote(name));
- out.print(", getJspContext().getAttribute(");
+ out.print(", pageContext.getAttribute(");
out.print(quote(name));
out.println("));");
} else {
String getter = toGetterMethod(tagVars[i].getNameFromAttribute());
out.print(getter);
- out.print(", getJspContext().getAttribute(");
+ out.print(", pageContext.getAttribute(");
out.print(getter);
out.println("));");
}
@@ -1837,7 +1840,7 @@
// Store varReader in appropriate scope
if (varReader != null) {
String scopeName = n.getAttributeValue("scope");
- out.printin("getJspContext().setAttribute(");
+ out.printin("pageContext.setAttribute(");
out.print(quote(varReader));
out.print(", new java.io.StringReader(sout.toString())");
if (scopeName != null) {
@@ -2797,6 +2800,15 @@
out.println();
}
+ // Generate imports
+ Iterator iter = pageInfo.getImports().iterator();
+ while (iter.hasNext()) {
+ out.printin("import ");
+ out.print ((String)iter.next());
+ out.println(";");
+ }
+ out.println();
+
// Generate class declaration
out.printin("public class ");
out.print(tagInfo.getTagName());
@@ -2820,6 +2832,7 @@
out.printil("public void doTag() throws javax.servlet.jsp.JspException {");
out.pushIndent();
+ out.printil("PageContext pageContext = new JspContextWrapper(getJspContext());");
// Declare parameter map for fragment/body invocation
out.printil("java.util.Map params = null;");
@@ -2827,8 +2840,7 @@
// if 'varReader' attribute is specified
out.printil("java.io.Writer sout = null;");
- out.printil("javax.servlet.jsp.JspWriter out = getJspContext().getOut();");
- out.printil("getJspContext().pushPageScope(null);");
+ out.printil("javax.servlet.jsp.JspWriter out = pageContext.getOut();");
generatePageScopedVariables(tagInfo);
out.printil("try {");
out.pushIndent();
@@ -2840,10 +2852,6 @@
out.pushIndent();
out.printil("throw new javax.servlet.jsp.JspException(ioe);");
out.popIndent();
- out.printil("} finally {");
- out.pushIndent();
- out.printil("getJspContext().popPageScope();");
- out.popIndent();
out.printil("}");
out.popIndent();
out.printil("}");
@@ -2988,7 +2996,7 @@
if (attrInfos != null) {
for (int i=0; i<attrInfos.length; i++) {
String attrName = attrInfos[i].getName();
- out.printin("getJspContext().setAttribute(");
+ out.printin("pageContext.setAttribute(");
out.print(quote(attrName));
out.print(", ");
out.print(toGetterMethod(attrName));
@@ -3002,7 +3010,7 @@
if (fragAttrInfos != null) {
for (int i=0; i<fragAttrInfos.length; i++) {
String attrName = fragAttrInfos[i].getName();
- out.printin("getJspContext().setAttribute(");
+ out.printin("pageContext.setAttribute(");
out.print(quote(attrName));
out.print(", ");
out.print(toGetterMethod(attrName));
@@ -3015,7 +3023,7 @@
out.printil("for (java.util.Iterator i = dynamicAttrs.entrySet().iterator(); i.hasNext(); ) {");
out.pushIndent();
out.printil("java.util.Map.Entry e = (java.util.Map.Entry) i.next();");
- out.printil("getJspContext().setAttribute((String) e.getKey(), e.getValue());");
+ out.printil("pageContext.setAttribute((String) e.getKey(), e.getValue());");
out.popIndent();
out.printil("}");
}
@@ -3253,8 +3261,6 @@
out.popIndent();
out.printil( "{" );
out.pushIndent();
- out.printil(
- "this.jspContext.pushPageScope( this.originalPageScope );" );
out.printil( "java.util.Map _jspx_originalValues = null;" );
out.printil( "if( params != null ) {" );
out.pushIndent();
@@ -3293,7 +3299,6 @@
out.printil( "restorePageScope( _jspx_originalValues );");
out.popIndent();
out.printil( "}" );
- out.printil( "this.jspContext.popPageScope();" );
out.popIndent();
out.printil( "}" ); // finally
out.popIndent();
1.3 +4 -6 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspFragmentHelper.java
Index: JspFragmentHelper.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspFragmentHelper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JspFragmentHelper.java 5 Aug 2002 21:05:24 -0000 1.2
+++ JspFragmentHelper.java 12 Aug 2002 17:55:45 -0000 1.3
@@ -90,7 +90,6 @@
protected JspContext jspContext;
protected PageContext pageContext;
protected JspTag parentTag;
- protected Map originalPageScope;
public JspFragmentHelper( int discriminator, JspContext jspContext,
JspTag parentTag )
@@ -102,7 +101,6 @@
pageContext = (PageContext)jspContext;
}
this.parentTag = parentTag;
- this.originalPageScope = jspContext.peekPageScope();
}
public JspContext getJspContext() {
@@ -127,7 +125,7 @@
while( keys.hasNext() ) {
String key = (String)keys.next();
// Remember original values to restore later
- originalValues.put( key, originalPageScope.get( key ) );
+ originalValues.put( key, jspContext.getAttribute( key ) );
// Set new values, based on params
jspContext.setAttribute( key, params.get( key ) );
}
1.15 +3 -67 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java
Index: PageContextImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- PageContextImpl.java 6 Aug 2002 05:33:30 -0000 1.14
+++ PageContextImpl.java 12 Aug 2002 17:55:45 -0000 1.15
@@ -465,67 +465,6 @@
}
/**
- * Pops the page scope from the stack. After calling this method, the
- * PageScope will appear the same as it was before the last call to
- * pushPageScope.
- *
- * @return A Map representing the state of the page scope just before
- * it was popped. This object can be passed to pushPageScope to
- * restore this state. The keys of the returned Map are Strings
- * representing attribute names. The values are the values of
- * those attributes.
- */
- public java.util.Map popPageScope()
- throws EmptyStackException
- {
- if( this.attributesStack == null ) {
- throw new EmptyStackException();
- }
- // Remember pop() may throw EmptyStackException.
- this.attributes = (Hashtable)this.attributesStack.pop();
- return this.attributes;
- }
-
- /**
- * Pushes a new page scope on the stack.
- *
- * @param scopeState If null, a new, empty, page scope is pushed.
- * Otherwise, the state of the page scope is restored to the
- * contents of the provided Map.
- */
- public void pushPageScope( java.util.Map scopeState ) {
- // Lazily create page scope stack
- if( this.attributesStack == null ) {
- this.attributesStack = new Stack();
- }
-
- // Push the old page scope on the stack:
- this.attributesStack.push( this.attributes );
-
- // Set the new page scope, depending on the input.
- if( scopeState == null ) {
- // Create a fresh page scope:
- this.attributes = new Hashtable( 16 );
- }
- else if( scopeState instanceof Hashtable ) {
- // Compatible Map.
- this.attributes = (Hashtable)scopeState;
- }
- else {
- // Incompatible Map. Only Maps returned by popPageScope()
- // or peekPageScope() can be passed in to this method.
- // Therefore, the scopeState MUST be an instance of Hashtable.
- throw new IllegalArgumentException(
- "Attempt to pass PageContext.pushPageScope() a Map " +
- "that was not created by this container." );
- }
- }
-
- public java.util.Map peekPageScope() {
- return this.attributes;
- }
-
- /**
* Provides programmatic access to the ExpressionEvaluator.
* The JSP Container must return a valid instance of an
* ExpressionEvaluator that can parse EL expressions.
@@ -612,9 +551,6 @@
protected transient Hashtable attributes = new Hashtable(16);
- // Page scope attribute stack, to implement {push|pop|peek}PageScope:
- // Lazily initialized.
- protected transient Stack attributesStack = null;
// per request state
protected transient ServletRequest request;
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>