2009-02-25 5 views
1

Ich schreibe eine Web-Anwendung mit JSP, und ich mag wirklich die "XML-Stil" JSP-Direktive (d. H. < jsp: Scriptlet> statt <%). Aber wenn ich Generics in meinem Code verwende, ist der Code-Inhalt kein gültiges XML und ich bekomme Kompilierungsfehler, wenn der Server (ich benutze Jetty 6) versucht, die Datei als XML zu analysieren.Wie schreibe ich XML-formatierte JSP mit Generics?

Zum Beispiel möchte ich schreiben:

<jsp:scriptlet> 
List<String> myText = new List<String>(); 
</jsp:scriptlet> 

jedoch offensichtlich dieser Code zu kompilieren, schlägt fehl. Ich habe versucht, CDATA-Wrapper um den Code (unmittelbar im jsp: Scriptlet-Tag) hinzuzufügen, aber es scheint keinen Unterschied zu machen.

Ist es überhaupt möglich, Generics in JSP Scriptlets zu verwenden?

Danke.

Antwort

2
<jsp:scriptlet> 
    List&lt;String> myText = new List&lt;String>(); 
</jsp:scriptlet> 

versuchte ich CDATA Wrapper um den Code hinzufügen (unmittelbar innerhalb der jsp: scriptlet-Tag), aber es sieht nicht einen Unterschied machen.

Wirklich? Das sollte auch funktionieren. Es ist natürlich ziemlich hässlich, aber dann hat niemand dem JSP-XML-Format vorgeworfen, dass es bequem ist oder irgendwas ...

+0

Ich bin nicht sicher, was mein Problem war (ist) - wenn ich versuche, es auf einer leeren Seite zu reproduzieren, funktioniert es großartig. Ohne CDATA bekomme ich einen anderen Fehler als was ich mit der problematischen Seite bekomme. Seltsam, aber ich lasse es jetzt los. – Guss

+0

Ja, es war meine Schuld - ich bin dumm. Das Problem war, dass ich versuchte, alte JSP, die noch nicht einmal gut formatiert war, in JSP 2.0 mit XML-Syntax zu konvertieren. Da Jetty versuchte, meine Seite mit einem XML-Parser zu analysieren, schlug die XML-Analyse fehl, obwohl die Syntax korrekt war. – Guss

+0

Leider gibt es keine Problemumgehung wie CDATA für Attribute. Ich hatte gerade dieses Problem im Typ Attribut von useBean.

0

Wenn Sie wirklich JSP schreiben möchten, möchte ich Tags erstellen (oder verwenden Sie die standard tag library (oder this)) und halten Sie die Seite von Scriptlets - mit oder ohne Generika. Mit der richtigen MVC-Trennung (oder zumindest der vom Rest getrennten Ansicht) können Sie normalerweise nur die Standard-Tag-Bibliothek verwenden, jsps erzeugen, die einfacher zu pflegen sind und automatisch als XML validieren.

Möchten Sie ein Framework mit Ihrer jsps verwenden oder möchten Sie die Verarbeitung von Anfragen innerhalb der jsp bearbeiten?

+0

Derzeit rüste ich ein existierendes System nach, und die Neugestaltung der Architektur ist weit entfernt von diesem Projekt: -) – Guss

+0

Aber wie Sie Generika in die JSPs scheinen scheinen, scheinen sie derzeit nicht da drin zu sein. Warum nicht - anstatt Generics zum jsp hinzuzufügen - einführen Sie Tags? Zurück einige Jahre hatten wir eine begleitende Klasse, die Logik mit jedem Jsp enthält, um Code in Jsps zu minimieren (wenn Tags schwierig waren) –

+0

Es gibt Generics in der aktuellen Implementierung, die alten JSP-Code verwendet. Ich möchte so viel wie möglich in XML-Code umwandeln, der einfacher zu lesen, zu validieren und zu verwalten ist. Die Generika werden oft für Code verwendet, der nur für die aktuelle Seite gilt, daher ist das Abstrahieren keine Option. – Guss

0

Hilft diese Seite auf Anlegesteg jsp configuration überhaupt?

Sind die Ausgangs- und Zielsprachenniveaus auf 1,5 eingestellt?

+0

In Eclipse, ja (ich benutze 1,6). Die Webapp ist als Version 2.4 eingestellt (nicht sicher, was es bedeutet). – Guss