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/11/01 03:54:41 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java JspDocumentParser.java PageInfo.java

kinman      2002/10/31 18:54:41

  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
                        JspDocumentParser.java PageInfo.java
  Log:
  - Generate an xml declaration if the JSP document (xml syntax) does not
    have <jsp:root> as its root element.  Take the encoding from the
    output contentType.
  
  Revision  Changes    Path
  1.116     +16 -3     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.115
  retrieving revision 1.116
  diff -u -r1.115 -r1.116
  --- Generator.java	1 Nov 2002 02:09:15 -0000	1.115
  +++ Generator.java	1 Nov 2002 02:54:41 -0000	1.116
  @@ -544,6 +544,18 @@
       }
   
       /**
  +     * Generates a XML declaration
  +     */
  +    private void generateXmlDeclaration(Node.Nodes page) {
  +	if (page.getRoot().isXmlSyntax() && ! pageInfo.hasJspRoot()) {
  +	    String cType = pageInfo.getContentType();
  +	    String charSet = cType.substring(cType.indexOf("charset=")+8);
  +	    out.printil("out.write(\"<?xml version=\\\"1.0\\\" encoding=\\\"" +
  +		charSet + "\\\"?>\\n\");");
  +	}
  +    }
  +
  +    /**
        * Generates EL Function map section
        */
       private void generateELFunctionMap() 
  @@ -2840,6 +2852,7 @@
   	    gen.generateTagHandlerPostamble(  tagInfo );
   	} else {
   	    gen.generatePreamble(page);
  +	    gen.generateXmlDeclaration(page);
   	    gen.fragmentHelperClass.generatePreamble();
   	    page.visit(gen.new GenerateVisitor(gen.ctxt.isTagFile(),
   					       out,
  
  
  
  1.24      +9 -3      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspDocumentParser.java
  
  Index: JspDocumentParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspDocumentParser.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- JspDocumentParser.java	30 Oct 2002 18:20:21 -0000	1.23
  +++ JspDocumentParser.java	1 Nov 2002 02:54:41 -0000	1.24
  @@ -112,6 +112,7 @@
       private ErrorDispatcher err;
       private boolean isTagFile;
       private boolean directivesOnly;
  +    private boolean isTop;
   
       /*
        * Constructor
  @@ -130,6 +131,7 @@
   	this.inputSource = new InputSource(reader);
   	this.isTagFile = isTagFile;
   	this.directivesOnly = directivesOnly;
  +	this.isTop = true;
       }
   
       /*
  @@ -161,6 +163,7 @@
   		handler.addInclude(jspRoot,
   				   handler.pageInfo.getIncludePrelude());
   	    } else {
  +		handler.isTop = false;
   		handler.current = parent;
   	    }
   
  @@ -228,6 +231,9 @@
               // (attrs) instead of the copy without the xmlns: elements 
               // (attrsCopy)
   	    node = new Node.JspRoot(new AttributesImpl(attrs), start, current);
  +	    if (isTop) {
  +		pageInfo.setHasJspRoot(true);
  +	    }
   	} else if (qName.equals(JSP_PAGE_DIRECTIVE)) {
   	    if (isTagFile) {
   		throw new SAXParseException(
  
  
  
  1.13      +12 -3     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java
  
  Index: PageInfo.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PageInfo.java	9 Oct 2002 17:41:13 -0000	1.12
  +++ PageInfo.java	1 Nov 2002 02:54:41 -0000	1.13
  @@ -97,6 +97,7 @@
       private boolean isXmlSpecified = false;	// true is there is a is-xml
   						// element in jsp-config
       private boolean hasTagFile = false;		// A custom tag is a tag file
  +    private boolean hasJspRoot = false;
       private Vector includePrelude;
       private Vector includeCoda;
   
  @@ -297,5 +298,13 @@
   
       public boolean hasTagFile() {
   	return hasTagFile;
  +    }
  +
  +    public void setHasJspRoot(boolean s) {
  +	hasJspRoot = s;
  +    }
  +
  +    public boolean hasJspRoot() {
  +	return hasJspRoot;
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>