You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ho...@apache.org on 2001/04/13 23:51:34 UTC
cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler DelegatingListener.java JspParseEventListener.java Parser.java XmlOutputter.java
horwat 01/04/13 14:51:34
Modified: jasper/src/share/org/apache/jasper/compiler
DelegatingListener.java JspParseEventListener.java
Parser.java XmlOutputter.java
Log:
Fixed mapping between JSP and XML syntax according to Section 5.3 of JSP 1.2 specification:
- tag library namespaces are now added to root element instead of using the "directive.taglib" syntax
- fixed character data handling
Bugzilla #1221
Revision Changes Path
1.7 +6 -4 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java
Index: DelegatingListener.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DelegatingListener.java 2000/12/05 11:05:19 1.6
+++ DelegatingListener.java 2001/04/13 21:51:33 1.7
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v 1.6 2000/12/05 11:05:19 pierred Exp $
- * $Revision: 1.6 $
- * $Date: 2000/12/05 11:05:19 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v 1.7 2001/04/13 21:51:33 horwat Exp $
+ * $Revision: 1.7 $
+ * $Date: 2001/04/13 21:51:33 $
*
* ====================================================================
*
@@ -238,6 +238,8 @@
throws JasperException {}
public void handleJspCdata(Mark start, Mark stop, char[] data)
- throws JasperException {}
+ throws JasperException {
+ delegate.handleJspCdata(start, stop, data);
+ }
}
1.25 +9 -5 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java
Index: JspParseEventListener.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- JspParseEventListener.java 2001/04/09 23:38:12 1.24
+++ JspParseEventListener.java 2001/04/13 21:51:33 1.25
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v 1.24 2001/04/09 23:38:12 horwat Exp $
- * $Revision: 1.24 $
- * $Date: 2001/04/09 23:38:12 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v 1.25 2001/04/13 21:51:33 horwat Exp $
+ * $Revision: 1.25 $
+ * $Date: 2001/04/13 21:51:33 $
*
* ====================================================================
*
@@ -752,9 +752,12 @@
String uri = attrs.getValue("uri");
String prefix = attrs.getValue("prefix");
processTaglibDirective(uri, prefix);
+
+ //Add xmlns to root element for each taglib
+ xo.addRootNamespaces(prefix, uri);
}
- if (directive.equals("include")) {
+ else if (directive.equals("include")) {
String file = attrs.getValue("file");
if (file == null)
throw new CompileException(start,
@@ -781,7 +784,8 @@
ex.getMessage());
}
}
- if (!directive.equals("include")) {
+
+ else if (!directive.equals("include")) {
xo.append("jsp:directive." + directive, attrs);
}
}
1.8 +4 -2 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java
Index: Parser.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Parser.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Parser.java 2001/02/09 00:19:19 1.7
+++ Parser.java 2001/04/13 21:51:34 1.8
@@ -1063,8 +1063,10 @@
void flushCharData(Mark start, Mark stop) throws JasperException {
char[] array = caw.toCharArray();
- if (array.length != 0) // Avoid unnecessary out.write("") statements...
- listener.handleCharData(start, stop, caw.toCharArray());
+ // Avoid unnecessary out.write("") statements...
+ if (array.length != 0) {
+ listener.handleJspCdata(start, stop, caw.toCharArray());
+ }
caw = new CharArrayWriter();
}
1.8 +15 -4 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java
Index: XmlOutputter.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XmlOutputter.java 2000/12/15 12:29:25 1.7
+++ XmlOutputter.java 2001/04/13 21:51:34 1.8
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v 1.7 2000/12/15 12:29:25 pierred Exp $
- * $Revision: 1.7 $
- * $Date: 2000/12/15 12:29:25 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v 1.8 2001/04/13 21:51:34 horwat Exp $
+ * $Revision: 1.8 $
+ * $Date: 2001/04/13 21:51:34 $
*
* ====================================================================
*
@@ -127,6 +127,14 @@
}
}
+ /**
+ * Add a namespace entry for every taglib in the <jsp:root> tag.
+ */
+ void addRootNamespaces(String prefix, String uri) {
+ rootAttrs.addAttribute("", "localname", "xmlns:" + prefix, "CDATA", uri);
+ }
+
+
/*
* Only put the </jsp:root> tag when we're dealing
* with the top level 'container' page.
@@ -212,7 +220,7 @@
* Append the end tag to the xml stream.
*/
void append(String tag) {
- sb.append("</").append(tag).append(">");
+ sb.append("</").append(tag).append(">\n");
}
//*********************************************************************
@@ -227,8 +235,11 @@
buff.append(PROLOG);
append("jsp:root", rootAttrs, buff);
buff.append(sb.toString());
+ buff.append("</jsp:root>");
InputStream is =
new ByteArrayInputStream(buff.toString().getBytes());
+//DELETE
+System.out.println("getPageData: \n" + buff.toString());
PageData pageData = new PageDataImpl(is);
return pageData;
}