kinman 02/05/20 18:40:13 Modified: jasper/src/share/org/apache/jasper/compiler DelegatingListener.java JspParseEventListener.java ParseEventListener.java ParserController.java Log: - Implemented errata_a: set the correct default content type for a page. Revision Changes Path 1.9 +7 -3 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- DelegatingListener.java 26 Apr 2001 23:17:40 -0000 1.8 +++ DelegatingListener.java 21 May 2002 01:40:13 -0000 1.9 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v 1.8 2001/04/26 23:17:40 horwat Exp $ - * $Revision: 1.8 $ - * $Date: 2001/04/26 23:17:40 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/DelegatingListener.java,v 1.9 2002/05/21 01:40:13 kinman Exp $ + * $Revision: 1.9 $ + * $Date: 2002/05/21 01:40:13 $ * * ==================================================================== * @@ -87,6 +87,10 @@ DelegatingListener(ParseEventListener delegate, Parser.Action action) { this.delegate = delegate; this.action = action; + } + + public void setDefault(boolean isXml) { + delegate.setDefault(isXml); } public void setReader(JspReader reader) { 1.38 +26 -18 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.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- JspParseEventListener.java 10 Apr 2002 21:14:20 -0000 1.37 +++ JspParseEventListener.java 21 May 2002 01:40:13 -0000 1.38 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v 1.37 2002/04/10 21:14:20 kinman Exp $ - * $Revision: 1.37 $ - * $Date: 2002/04/10 21:14:20 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v 1.38 2002/05/21 01:40:13 kinman Exp $ + * $Revision: 1.38 $ + * $Date: 2002/05/21 01:40:13 $ * * ==================================================================== * @@ -104,7 +104,10 @@ String jspServletBase = Constants.JSP_SERVLET_BASE; String serviceMethodName = Constants.SERVICE_METHOD_NAME; - String servletContentType = Constants.SERVLET_CONTENT_TYPE; + String servletContentType = null; + String pageEncoding = null; + String defaultType = null; + String defaultCharset = null; String extendsClass = ""; Vector interfaces = new Vector(); @@ -151,6 +154,16 @@ generators.addElement(gen); } + public void setDefault(boolean isXml) { + if (isXml) { + defaultType = "text/xml;"; + defaultCharset = "UTF-8"; + } else { + defaultType = "text/html;"; + defaultCharset = "ISO-8859-1"; + } + } + public static void setCommentGenerator(CommentGenerator generator) { if ( null == commentGenerator) { throw new IllegalArgumentException("null == generator"); @@ -345,14 +358,15 @@ writer.println("}"); writer.println("_jspxFactory = JspFactory.getDefaultFactory();"); - if (this.contentTypeDir == true) - writer.println("response.setContentType(" + - writer.quoteString(servletContentType) + + // Per errata_a, determine the default output content type + if (servletContentType == null) { + servletContentType = defaultType + + ((pageEncoding == null)? defaultCharset: pageEncoding); + } + writer.println("response.setContentType(" + + writer.quoteString(servletContentType) + ");"); - else - writer.println("response.setContentType(\"" + - servletContentType + - ";charset=ISO-8859-1\");"); writer.println("pageContext = _jspxFactory.getPageContext(this, request, response,"); writer.println("\t\t\t" + writer.quoteString(error) + ", " @@ -480,13 +494,7 @@ if (pageEncoding == null) throw new CompileException(start, Constants.getString("jsp.error.page.invalid.pageencoding")); - // We do nothing with pageEncoding. - // This is handled by the parser - // to set the encoding type on the reader before we even - // start parsing the page. - // No restriction on one such attribute per translation unit. - // We can have one per page. - // FIXME: we do not track multiple occurrences per page + listener.pageEncoding = pageEncoding; } } 1.8 +4 -3 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java Index: ParseEventListener.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ParseEventListener.java 26 Apr 2001 23:17:40 -0000 1.7 +++ ParseEventListener.java 21 May 2002 01:40:13 -0000 1.8 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v 1.7 2001/04/26 23:17:40 horwat Exp $ - * $Revision: 1.7 $ - * $Date: 2001/04/26 23:17:40 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParseEventListener.java,v 1.8 2002/05/21 01:40:13 kinman Exp $ + * $Revision: 1.8 $ + * $Date: 2002/05/21 01:40:13 $ * * ==================================================================== * @@ -86,6 +86,7 @@ * and the reader is different for each one. */ public void setReader(JspReader reader); + public void setDefault(boolean isXml); void setTemplateInfo(Mark start, Mark stop); void beginPageProcessing() throws JasperException; 1.18 +1 -0 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserController.java Index: ParserController.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ParserController.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- ParserController.java 3 Sep 2001 03:34:08 -0000 1.17 +++ ParserController.java 21 May 2002 01:40:13 -0000 1.18 @@ -207,6 +207,7 @@ // dispatch to the proper parser reader = getReader(absFileName, encoding); + jspHandler.setDefault(isXml); if (isXml) { (new ParserXJspSax(absFileName, reader, jspHandler)).parse(); } else {
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>