2012-05-16 15 views
5

Ich habe einige alte JSP-Dateien mit Tags wieJSP-Tag-Attribut kann nicht mehr als einmal gesetzt werden?

<mytag:editbox name="SEL_1" param="onclick='clickit();" param="size='4'" />.

Diese JSP läuft sehr gut in Websphere 5.0. Wenn ich es in Websphere 8.0 verschiebe, stimmt etwas nicht. Die Java-Quelle von JSP wie folgt kompiliert:

Die letzten [Attribute] überschreibt diejenigen vor ihm. Ich teste auch die JSP in Websphere 6.0 und Tomcat. WAS6 ist das gleiche wie 8.0 und Tomcat sagt:

org.apache.jasper.JasperException: /index.jsp (line: 17, column: 20) Attribute qualified names must be unique within an element 

Das Attribut des Tags kann nicht mehr als einmal festgelegt werden.

Ist dies die Anforderung der JSP 2.0 + Spezifikation? (Ich denke, dass der JSP-Container in WAS5.0 JSP 1.2 ist.)

Ich kann die zwei Parameterparam in eins zusammenführen, um das Problem zu beheben, aber wie das richtige Ergebnis erhalten, ohne die JSP-Quelle zu ändern?

Antwort

5

Mehrere Attribute mit dem gleichen Namen hatten nie unterstützt von der JSP-Spezifikation. Wenn es auf Websphere 5 funktioniert, dann wäre das von proprietärem Verhalten abhängig gewesen, das von dieser Server-Version und nicht von anderen erlaubt wurde. Ich nehme an, dass die Tag-Klasse so etwas wie das Hinzufügen der Werte zu einer Sammlung oder dergleichen macht.

Sie müssen das Tag referenziell anpassen, um spezifikationskonform zu sein, indem Sie eine Zeichenfolge mit Trennzeichen verwenden oder verschachtelte Tags verwenden.

3

JSP-Tags sind XML-Elemente. Und ein XML-Element darf nicht mehrere Attribute mit demselben Namen enthalten. Mein Code ist zufällig in früheren Websphere-Versionen passiert, wahrscheinlich aufgrund einer schlampigen Validierung und Interpretation der JSP-Tags.

0

das gleiche Verhalten haben mit 8 WS können Sie dieses JSP-Attribut in Ihrer Anwendung Deployment Descriptor enthalten (ibm-ext-web.xmi):

allowMultipleAttributeValues Set true.

Oder setzen Sie die benutzerdefinierte Eigenschaft com.ibm.wsspi.jsp.allowMultipleAttributeValues des Web-Containers auf true.

Quelle: http://www-01.ibm.com/support/docview.wss?uid=swg1PM65454

0

hatte ich das gleiche Problem. Ich habe gleichzeitig Struts-Tags mit Tags der Tag-Tags-Bibliothek verwendet, weshalb ich auf dieses Problem gestoßen bin. Sobald ich einen gewählt habe, ging der Fehler weg. Die Verwendung derselben Tags aus zwei verschiedenen Bibliotheken führt zu Mehrdeutigkeiten.

Verwandte Themen