2008-10-23 8 views

Antwort

8

I < 3 Tag-Dateien, aber das führende Entwickler von JSTL raucht Crack, wenn sie das wirklich gesagt haben. Sie können nicht alle Tag-Bibliothek-Tags als Tag-Datei-Tags neu schreiben, aus einem sehr wichtigen Grund: Tag-Dateien können nicht:

Rückgabe EVAL_BODY_INCLUDE;

Mit anderen Worten, Tag-Dateien haben nur drei Optionen für ihren Körper-Inhalt:

leer: keinen inneren Gehalt, das heißt. < someTag/>

schreibgeschützt: kein JSP innerer Inhalt, dh. <SOMETAG> <p> Hallo Welt </p > </SOMETAG > ist ok, aber nicht <SOMETAG> <p> <% = helloWorld.toString()% > </p > </SOMETAG >

tagdependent: Sie können JSP inneren Inhalt haben, aber es wird nicht als solcher verarbeitet; stattdessen müssen Sie analysieren/machen es jedoch, das Sie fit

Aber mit den alten Stil-Tag-Bibliothek-Tags angezeigt wird, können Sie haben: < Körper Inhalt > JSP </body-Inhalt > (in der TLD-Datei) und dann "EVAL_BODY_INCLUDE zurückgeben" von Ihrem "doStartTag". Wenn Sie dies tun, werden alle Ihre JSP-Direktiven so analysiert, als wären sie ein normaler Teil Ihrer Seite, und Ihr Tag umschließt sie einfach mit dem entsprechenden Inhalt.

Persönlich ist meine Faustregel: Verwenden Sie Tag-Dateien wann immer Sie können, dh. Wann immer Sie keine JSP-Direktiven benötigen, um innerhalb des Tags zu arbeiten, weil sie millionenfach sauberer sind, einfacher für Nicht-Programmierer, benötigen Sie kein tld (naja, wenn Sie sie in einem separaten Namespace behalten) Ihre Tag-Bibliothek-Tags).

Wenn Sie jedoch JSP-Inhalt in Ihrem Tag haben möchten, ist Ihre einzige Option Tag-Library-Tags. Hoffentlich werden die JSP-Leute eines Tages eine Möglichkeit zur Verarbeitung von JSP-Anweisungen innerhalb eines Tag-Datei-Tags veröffentlichen, und dann können wir die alten klassenbasierten Tags wirklich aufgeben, aber bis dahin versuchen Sie bitte nicht, alle Tags mit Tag-Dateien zu machen , da Sie schnell auf die Erstellung benutzerdefinierter Tags für jedes letzte Stück Logik verzichten können (da dies die einzige Möglichkeit ist, Logik ohne die Verwendung von JSP-Direktiven auszuführen).

6

Probleme Benutzerdefinierte Schlagwörter

Traditionelle benutzerdefinierten Tags Entwicklung benötigen Java Programmierkenntnisse.

Alle außer den einfachsten benutzerdefinierten Tags sind nicht einfach zu schreiben.

Der Zweck von JSP, im Gegensatz zu Servlets, ist die Verwendung von Auszeichnungssprache, um Layout mit eingebetteten dynamischen Inhalt zu verwalten.

Das Schreiben komplexer Java-Code in benutzerdefinierten Tags, die auf Markup-Sprache konzentrieren, geht rückwärts.

Möglicherweise möchten wir die JSP-Ausdruckssprache oder andere benutzerdefinierte Tags bei der Implementierung eines neuen benutzerdefinierten -Tags verwenden.

Die Lösung JSP 2.0 Tag Dateien

  • Tag-Dateien sind eine der wichtigsten neuen Konzepte eingeführt mit JSP 2.0.
  • Tag-Dateien ermöglichen eine einfachere und schnellere Entwicklung von benutzerdefinierten Tags.
  • Tag-Dateien werden mit normaler JSP-Syntax einschließlich Scripting-Elementen entwickelt und genau wie jedes andere benutzerdefinierte Tag verwendet.
  • Jedes benutzerdefinierte Tag ist eine separate Tag-Datei.

Wie unterscheiden sich Tag-Dateien?

Mit JSP-Syntax geschrieben.

  • Nicht alle JSP-Anweisungen sind in einer Tag-Datei zulässig.
  • Unterstützt von neuen Tag-Datei-spezifischen Direktiven, Aktionen und impliziten Objekten.

Identifizierte entweder durch ein .tag oder .tagx Suffix.

Entwickelt, um Entwicklern von benutzerdefinierten Tags eine einfache Entwicklung ohne Funktionsverlust zu ermöglichen.

  • Einer der führenden Entwickler von JSTL hat kommentiert, dass wenn sie die Zeit hatte, sie alle JSTL mit Tag-Dateien umschreiben würde.