2008-09-08 11 views
7

Ich habe eine .tag-Datei, die eine JavaScript-Bibliothek (wie in einer .js-Datei) benötigt.Importieren von JavaScript in JSP-Tags

Momentan erinnere ich mich nur daran, die JS-Datei in jede JSP zu importieren, die das Tag verwendet, aber das ist ein bisschen umständlich und fehleranfällig.

Gibt es eine Möglichkeit, den Import der .js innerhalb des JSP-Tags durchzuführen?

(für Caching Gründen würde ich die Js wollen ein Skript importieren sein)

Antwort

5

Es gibt keinen Grund, warum Sie kein Skript-Tag im Körper haben können, obwohl es vorzuziehen ist, dass es im Kopf ist. Geben Sie einfach das Skript-Tag aus, bevor Sie das Markup Ihres Tags ausgeben. Das einzige, was Sie beachten sollten, ist, dass Sie das Skript nicht mehr als einmal einfügen möchten, wenn Sie das JSP-Tag mehrmals auf der Seite verwenden. Die Lösung besteht darin, sich daran zu erinnern, dass Sie das Skript bereits hinzugefügt haben, indem Sie dem Anforderungsobjekt ein Attribut hinzufügen.

2

Kurz nur automatisch auf jeder Seite die js einschließlich, ich glaube nicht. Es wäre wirklich nicht etwas, zu dem Tags entwickelt wurden.

Ohne zu wissen, was Ihr Tag eigentlich macht (vermutlich ist es seine Ausgabe etwas im Körperbereich), dann wird es auf keinen Fall möglich sein, die Deklaration dort anzubringen. Eine Lösung, die (in meinem Kopf) funktionieren könnte, wäre ein Include, das wörtlich kopiert, was Sie im Kopf nach dem Platz im Kopf haben, um Tags bis zu dem Punkt zu importieren, an dem Sie das Tag verwenden möchten. Das ist wirklich nicht etwas, was Sie tun möchten. Sie müssten mehrere "Header" -Dateien importieren, abhängig vom Inhalt und dem Ort, an dem Sie das Tag verwenden möchten. Wartungs-Albtraum. Nur eine schlechte Idee. Jede Lösung, die ich mir vorstellen kann, würde mehr Arbeit erfordern als das manuelle Hinzufügen der Deklaration.

Ich denke, Sie Pech sind und mit von Hand stecken setzen es in

bearbeiten. Nur es auf jeder Seite importieren. Es wird zwischengespeichert und dann verschwindet dieses Problem.

+1

Grundsätzlich ist es eine Ajax-Komponente, so dass es einige Daten anzeigt und dann spezielle JS-Logik benötigt, um eine Aktion usw. aufzurufen. Deshalb möchte ich, dass es in sich geschlossen ist; also kannst du einfach eins von ihnen fallen lassen und damit fertig sein. – SCdF

Verwandte Themen