Die "neuen" JSP 2.0 Tag-Datei-Tags sind unglaublich nützlich, und in den meisten Fällen (zumindest das, was ich gesehen habe) bieten sie ein weit besser lesbares Format als eine Java-Klasse. Während Tag-Dateien fast alles tun können, was ein Java-Klasse-Tag kann, gibt es eine riesige Sache, die sie nicht tun können: "scripting" body content (dh. "<%" Zeug zwischen den Start- und Ende-Tags) .Warum können JSP 2.0-Tag-Dateien keinen Body-Content von "JSP" haben?
Also, meine Frage ist mehrteilig:
- Weiß jemand, warum (von einem Design-Standpunkt aus) ist das? Ist es unmöglich, dass Tag-Dateien aufgrund der Art der Implementierung solchen Inhalt haben?
- Weiß jemand, ob es zukünftige Pläne gibt, body-content = "JSP" in Tag-Dateien zuzulassen (in einer zukünftigen Version des JSP-Standards vielleicht)?
- Kennt jemand eine Möglichkeit, Tag-Dateien zu "hacken", um ihnen zu ermöglichen, Skriptinhalt zu haben (wie durch einen body-content von scriptless, und dann den Inhalt irgendwie zu verarbeiten)?
Grundsätzlich mein Traum ist es, eines Tages Tag-Dateien zu schreiben, die in Ausnahmen führen nicht, wenn jemand einen
<%= myVar %>
innen versetzt, und ich versuche nur, um zu bestimmen, ob dieser Traum ist hoffnungslos oder nicht.
Ich denke, ein anderer Weg, diese Frage zu formulieren ist: Warum können Tag-Datei-Tags nicht einfache ("klassische") Tags erstellen (gibt es einige technische Einschränkungen)? Gibt es überhaupt einen Weg (auch wenn es auf "Hacks" zurückgreifen muss), um ein "klassisches" Tag mit Tag-Dateien zu erstellen? – machineghost
Das Problem mit den Antworten "Vermeiden Sie nur das Scripting in Ihren JSPs" ist, dass unsere gesamte Anwendung (sieben Jahre Code) auf JSPs mit Skripting basiert (natürlich auch auf Klassen, aber kein klares Modell/View/Controller-Trennung). Leider kann ich nicht einfach alles, was wir schon geschrieben haben, aus dem Fenster werfen. Das lässt mir eine Wahl: Entwickle alle neuen Tags mit Klassen (* wince *) oder finde eine Möglichkeit, Tag-Dateien auf unseren bestehenden Seiten zu verwenden ...und diese Stack Overflow-Abfrage ist meine Art zu versuchen, herauszufinden, wie das letztere zu tun ist. – machineghost
Auch nur um zu klären, ob es wirklich unmöglich ist, Tag-Datei-Tags mit Scripting innerhalb zu haben, werde ich das Kopfgeld auf diese Frage an denjenigen vergeben, der die beste Erklärung dafür liefert, warum es keine Möglichkeit gibt. Aber ich hoffe wirklich, dass jemand einen Weg gefunden hat (auch wenn es eine "hacky" Lösung erfordert, wie den Body-Inhalt auf "tagdependant" zu setzen und dann diesen Inhalt irgendwie zurück durch das Servlet zu füttern). – machineghost