You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/02/07 21:16:19 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources messages.properties

luehe       2003/02/07 12:16:18

  Modified:    jasper2/src/share/org/apache/jasper/compiler
                        JspDocumentParser.java
               jasper2/src/share/org/apache/jasper/resources
                        messages.properties
  Log:
  Added translation error for invalid standard actions in XML syntax
  (translation error is already being thrown in standard syntax)
  
  Revision  Changes    Path
  1.37      +129 -111  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.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- JspDocumentParser.java	1 Feb 2003 02:41:13 -0000	1.36
  +++ JspDocumentParser.java	7 Feb 2003 20:16:18 -0000	1.37
  @@ -221,9 +221,6 @@
   
   	Mark start = new Mark(path, locator.getLineNumber(),
   			      locator.getColumnNumber());
  -	Attributes attrsCopy = null;
  -
  -	Node node = null;
   
   	// XXX - As of JSP 2.0, xmlns: can appear in any node (not just
   	// <jsp:root>).  The spec still needs clarification here.
  @@ -231,6 +228,7 @@
   	// is valid from that point forward.  Redefinitions cause an
   	// error.  This isn't quite consistent with how xmlns: normally
   	// works.
  +	Attributes attrsCopy = null;
   	try {
   	    attrsCopy = addCustomTagLibraries(attrs);
   	} catch (JasperException je) {
  @@ -239,108 +237,12 @@
   		    locator, je );
   	}
   
  -	if (qName.equals(JSP_ROOT)) {
  -            // give the <jsp:root> element the original attributes set
  -            // (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(
  -		    Localizer.getMessage("jsp.error.action.istagfile", qName),
  -		    locator);
  -	    }
  -	    node = new Node.PageDirective(attrsCopy, start, current);
  -	    String imports = attrs.getValue("import");
  -	    // There can only be one 'import' attribute per page directive
  -	    if (imports != null) {
  -		((Node.PageDirective) node).addImport(imports);
  -	    }
  -	} else if (qName.equals(JSP_INCLUDE_DIRECTIVE)) {
  -	    node = new Node.IncludeDirective(attrsCopy, start, current);
  -	    processIncludeDirective(attrsCopy.getValue("file"), node);
  -	} else if (qName.equals(JSP_DECLARATION)) {
  -	    node = new Node.Declaration(start, current);
  -	} else if (qName.equals(JSP_SCRIPTLET)) {
  -	    node = new Node.Scriptlet(start, current);
  -	} else if (qName.equals(JSP_EXPRESSION)) {
  -	    node = new Node.Expression(start, current);
  -	} else if (qName.equals(JSP_USE_BEAN)) {
  -	    node = new Node.UseBean(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_SET_PROPERTY)) {
  -	    node = new Node.SetProperty(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_GET_PROPERTY)) {
  -	    node = new Node.GetProperty(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_INCLUDE)) {
  -	    node = new Node.IncludeAction(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_FORWARD)) {
  -	    node = new Node.ForwardAction(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_PARAM)) {
  -	    node = new Node.ParamAction(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_PARAMS)) {
  -	    node = new Node.ParamsAction(start, current);
  -	} else if (qName.equals(JSP_PLUGIN)) {
  -	    node = new Node.PlugIn(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_TEXT)) {
  -	    node = new Node.JspText(start, current);
  -	} else if (qName.equals(JSP_BODY)) {
  -	    node = new Node.JspBody(start, current);
  -	} else if (qName.equals(JSP_ATTRIBUTE)) {
  -	    node = new Node.NamedAttribute(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_OUTPUT)) {
  -	    node = new Node.JspOutput(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_TAG_DIRECTIVE)) {
  -	    if (!isTagFile) {
  -		throw new SAXParseException(
  -		    Localizer.getMessage("jsp.error.action.isnottagfile",
  -					 qName),
  -		    locator);
  -	    }
  -	    node = new Node.TagDirective(attrsCopy, start, current);
  -	    String imports = attrs.getValue("import");
  -	    // There can only be one 'import' attribute per tag directive
  -	    if (imports != null) {
  -		((Node.TagDirective) node).addImport(imports);
  -	    }
  -	} else if (qName.equals(JSP_ATTRIBUTE_DIRECTIVE)) {
  -	    if (!isTagFile) {
  -		throw new SAXParseException(
  -		    Localizer.getMessage("jsp.error.action.isnottagfile",
  -					 qName),
  -		    locator);
  -	    }
  -	    node = new Node.AttributeDirective(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_VARIABLE_DIRECTIVE)) {
  -	    if (!isTagFile) {
  -		throw new SAXParseException(
  -		    Localizer.getMessage("jsp.error.action.isnottagfile",
  -					 qName),
  -		    locator);
  -	    }
  -	    node = new Node.VariableDirective(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_INVOKE)) {
  -	    if (!isTagFile) {
  -		throw new SAXParseException(
  -		    Localizer.getMessage("jsp.error.action.isnottagfile",
  -					 qName),
  -		    locator);
  -	    }
  -	    node = new Node.InvokeAction(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_DO_BODY)) {
  -	    if (!isTagFile) {
  -		throw new SAXParseException(
  -		    Localizer.getMessage("jsp.error.action.isnottagfile",
  -					 qName),
  -		    locator);
  -	    }
  -	    node = new Node.DoBodyAction(attrsCopy, start, current);
  -	} else if (qName.equals(JSP_ELEMENT)) {
  -	    node = new Node.JspElement(attrsCopy, start, current);
  +	Node node = null;
  +	if (qName.startsWith("jsp:")) {
  +	    node = parseStandardAction(qName, attrs, attrsCopy, start,
  +				       current);
   	} else {
  -	    node = getCustomTag(qName, attrsCopy, start, current);
  +	    node = parseCustomAction(qName, attrsCopy, start, current);
   	    if (node == null) {
   		node = new Node.UninterpretedTag(attrsCopy, start, qName,
   						 current);
  @@ -580,14 +482,130 @@
       //*********************************************************************
       // Private utility methods
   
  +    private Node parseStandardAction(String qName, Attributes attrs,
  +				     Attributes attrsCopy, Mark start,
  +				     Node parent)
  +	        throws SAXException {
  +
  +	Node node = null;
  +
  +	if (qName.equals(JSP_ROOT)) {
  +            // give the <jsp:root> element the original attributes set
  +            // (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(
  +		    Localizer.getMessage("jsp.error.action.istagfile", qName),
  +		    locator);
  +	    }
  +	    node = new Node.PageDirective(attrsCopy, start, current);
  +	    String imports = attrs.getValue("import");
  +	    // There can only be one 'import' attribute per page directive
  +	    if (imports != null) {
  +		((Node.PageDirective) node).addImport(imports);
  +	    }
  +	} else if (qName.equals(JSP_INCLUDE_DIRECTIVE)) {
  +	    node = new Node.IncludeDirective(attrsCopy, start, current);
  +	    processIncludeDirective(attrsCopy.getValue("file"), node);
  +	} else if (qName.equals(JSP_DECLARATION)) {
  +	    node = new Node.Declaration(start, current);
  +	} else if (qName.equals(JSP_SCRIPTLET)) {
  +	    node = new Node.Scriptlet(start, current);
  +	} else if (qName.equals(JSP_EXPRESSION)) {
  +	    node = new Node.Expression(start, current);
  +	} else if (qName.equals(JSP_USE_BEAN)) {
  +	    node = new Node.UseBean(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_SET_PROPERTY)) {
  +	    node = new Node.SetProperty(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_GET_PROPERTY)) {
  +	    node = new Node.GetProperty(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_INCLUDE)) {
  +	    node = new Node.IncludeAction(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_FORWARD)) {
  +	    node = new Node.ForwardAction(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_PARAM)) {
  +	    node = new Node.ParamAction(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_PARAMS)) {
  +	    node = new Node.ParamsAction(start, current);
  +	} else if (qName.equals(JSP_PLUGIN)) {
  +	    node = new Node.PlugIn(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_TEXT)) {
  +	    node = new Node.JspText(start, current);
  +	} else if (qName.equals(JSP_BODY)) {
  +	    node = new Node.JspBody(start, current);
  +	} else if (qName.equals(JSP_ATTRIBUTE)) {
  +	    node = new Node.NamedAttribute(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_OUTPUT)) {
  +	    node = new Node.JspOutput(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_TAG_DIRECTIVE)) {
  +	    if (!isTagFile) {
  +		throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.action.isnottagfile",
  +					 qName),
  +		    locator);
  +	    }
  +	    node = new Node.TagDirective(attrsCopy, start, current);
  +	    String imports = attrs.getValue("import");
  +	    // There can only be one 'import' attribute per tag directive
  +	    if (imports != null) {
  +		((Node.TagDirective) node).addImport(imports);
  +	    }
  +	} else if (qName.equals(JSP_ATTRIBUTE_DIRECTIVE)) {
  +	    if (!isTagFile) {
  +		throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.action.isnottagfile",
  +					 qName),
  +		    locator);
  +	    }
  +	    node = new Node.AttributeDirective(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_VARIABLE_DIRECTIVE)) {
  +	    if (!isTagFile) {
  +		throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.action.isnottagfile",
  +					 qName),
  +		    locator);
  +	    }
  +	    node = new Node.VariableDirective(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_INVOKE)) {
  +	    if (!isTagFile) {
  +		throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.action.isnottagfile",
  +					 qName),
  +		    locator);
  +	    }
  +	    node = new Node.InvokeAction(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_DO_BODY)) {
  +	    if (!isTagFile) {
  +		throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.action.isnottagfile",
  +					 qName),
  +		    locator);
  +	    }
  +	    node = new Node.DoBodyAction(attrsCopy, start, current);
  +	} else if (qName.equals(JSP_ELEMENT)) {
  +	    node = new Node.JspElement(attrsCopy, start, current);
  +	} else {
  +	    throw new SAXParseException(
  +		    Localizer.getMessage("jsp.error.badStandardAction"),
  +		    locator);
  +	}
  +
  +	return node;
  +    }
  +
       /*
        * Checks if the XML element with the given tag name is a custom action,
        * and returns the corresponding Node object.
        */
  -    private Node getCustomTag(String qName,
  -			      Attributes attrs,
  -			      Mark start,
  -			      Node parent) throws SAXException {
  +    private Node parseCustomAction(String qName,
  +				   Attributes attrs,
  +				   Mark start,
  +				   Node parent) throws SAXException {
   	int colon = qName.indexOf(':');
   	if (colon == -1) {
   	    return null;
  
  
  
  1.89      +2 -2      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v
  retrieving revision 1.88
  retrieving revision 1.89
  diff -u -r1.88 -r1.89
  --- messages.properties	3 Feb 2003 20:33:36 -0000	1.88
  +++ messages.properties	7 Feb 2003 20:16:18 -0000	1.89
  @@ -304,7 +304,7 @@
   jsp.error.could.not.add.taglibraries=Could not add one or more tag libraries.
   jsp.error.duplicate.name.jspattribute=The attribute {0} specified in the standard or custom action also appears as the value of the name attribute in the enclosed jsp:attribute
   jsp.error.not.in.template={0} not allowed in a template text body.
  -jsp.error.badStandardAction=The action is not a recognizable standard action.
  +jsp.error.badStandardAction=Invalid standard action
   jsp.error.tagdirective.badbodycontent=Invalid body-content ({0}) in tag directive
   jsp.error.config_pagedir_encoding_mismatch=Page-encoding specified in jsp-property-group ({0}) is different from that specified in page directive ({1})
   jsp.error.prolog_pagedir_encoding_mismatch=Page-encoding specified in XML prolog ({0}) is different from that specified in page directive ({1})
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org