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]>

Reply via email to