Wenn Sie eine Taglib verwenden, ist der Container normalerweise:
Dadurch bleibt der gesamte Code in der gleichen Ressource (die Anfrage wird nicht an eine andere Komponente weitergegeben) und Sie können somit Schleifenverhalten erstellen und auf andere Komponenten auf der aktuellen Seite zugreifen.
Beim Lernen von Tag-Bibliotheken ist Overhead angesagt. Aber sobald Sie Ihr erstes Tag haben, funktioniert alles bergab. Auch das Endergebnis wird für Nicht-Entwickler einfacher zu verstehen sein (vorausgesetzt, Sie wählen gute Namen für die Tags).
Taglibs können Sie (typisierte) Parameter definieren, die Sie dokumentieren können. Auch Taglibs können sich ihrer Position im Objektbaum bewusst sein, also in einem anderen Kontext anders agieren; oder rufen Sie eine bestimmte Vorlage immer wieder auf, um Iteratoren oder Anweisungskonstrukte zu erstellen.
Ist Ihnen bewusst, dass Taglibs nicht unbedingt in Java geschrieben sein müssen? Es gibt auch ein Konzept namens Tagfiles, mit dem Sie Ihre Taglib in JSP schreiben können; oft besser geeignet für flache Komponenten ... ganz nah dran.
Tags (die den einfach zu verwendenden JSP-ähnlichen Tag-Datei-Mechanismus enthalten) unterstützen den Aufruf mit stark typisierten, benannten Parametern.
Ein weiteres unglaublich nützliches und überraschend oft übersehenes Feature von JSP-Tags ist der Attributtyp JspFragment
. Auf diese Weise können Sie einen Teil des JSP-Codes als Parameter an ein Tag übergeben, das möglicherweise wiederholt aufgerufen wird.
Enthält diese leistungsstarken Parameterfunktionen.
taglibs machen es einfacher, Parameter zu definieren und zu handhaben, aber es gibt einen erheblichen Aufwand für deren Entwicklung. Includes sind einfacher, aber weniger leistungsstark. Viel hängt von Ihrem Stil ab.
Nach meiner Erfahrung verwenden Leute im Allgemeinen nur Includes, weil sie sich nicht die Zeit nehmen wollen, Tablibs zu erstellen. Zu einem fairen Durcheinander führen. Solange Ihr Team klein und Ihr nicht zu komplex ist, ist es nicht so schlimm. Aber es ist ein Code-Geruch.
Tags und Links jsp taglib jspinclude