/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ package org.apache.jasper.util;
/** * Wraps the default attributes implementation and ensures that each attribute * has a unique qname as required by the JSP specification.
*/ publicclass UniqueAttributesImpl extends AttributesImpl {
privatevoid handleDuplicate(String qName, String value) { if (pageDirective) { if (IMPORT.equalsIgnoreCase(qName)) { // Always merge imports int i = super.getIndex(IMPORT);
String v = super.getValue(i); super.setValue(i, v + "," + value); return;
} elseif (PAGE_ENCODING.equalsIgnoreCase(qName)) { // Page encoding can only occur once per file so a second // attribute - even one with a duplicate value - is an error
} else { // Other attributes can be repeated if and only if the values // are identical
String v = super.getValue(qName); if (v.equals(value)) { return;
}
}
}
// Ordinary tag attributes can't be repeated, even with identical values thrownew IllegalArgumentException(
Localizer.getMessage("jsp.error.duplicateqname", qName));
}
}
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.