kinman      02/05/20 18:46:41

  Modified:    jasper/src/share/org/apache/jasper/compiler Tag:
                        tomcat_40_branch DelegatingListener.java
                        JspParseEventListener.java ParseEventListener.java
                        ParserController.java
  Log:
  - Implemented errata_a: set the correct default content type for a page.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.8.2.1   +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.8.2.1
  diff -u -r1.8 -r1.8.2.1
  --- DelegatingListener.java   26 Apr 2001 23:17:40 -0000      1.8
  +++ DelegatingListener.java   21 May 2002 01:46:40 -0000      1.8.2.1
  @@ -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.8.2.1 2002/05/21 01:46:40 kinman Exp $
  + * $Revision: 1.8.2.1 $
  + * $Date: 2002/05/21 01:46:40 $
    *
    * ====================================================================
    * 
  @@ -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.33.2.5  +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.33.2.4
  retrieving revision 1.33.2.5
  diff -u -r1.33.2.4 -r1.33.2.5
  --- JspParseEventListener.java        10 Apr 2002 21:23:04 -0000      1.33.2.4
  +++ JspParseEventListener.java        21 May 2002 01:46:40 -0000      1.33.2.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.33.2.4 2002/04/10 21:23:04 kinman Exp $
  - * $Revision: 1.33.2.4 $
  - * $Date: 2002/04/10 21:23:04 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.33.2.5 2002/05/21 01:46:40 kinman Exp $
  + * $Revision: 1.33.2.5 $
  + * $Date: 2002/05/21 01:46:40 $
    *
    * ====================================================================
    *
  @@ -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.7.2.1   +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.7.2.1
  diff -u -r1.7 -r1.7.2.1
  --- ParseEventListener.java   26 Apr 2001 23:17:40 -0000      1.7
  +++ ParseEventListener.java   21 May 2002 01:46:40 -0000      1.7.2.1
  @@ -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.7.2.1 2002/05/21 01:46:40 kinman Exp $
  + * $Revision: 1.7.2.1 $
  + * $Date: 2002/05/21 01:46:40 $
    *
    * ====================================================================
    * 
  @@ -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.17.2.1  +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.17.2.1
  diff -u -r1.17 -r1.17.2.1
  --- ParserController.java     3 Sep 2001 03:34:08 -0000       1.17
  +++ ParserController.java     21 May 2002 01:46:40 -0000      1.17.2.1
  @@ -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