Kann jemand dieses Beispiel testen und die Ergebnisse teilen?
Ссылка
Wenn ich das tue:
Ich bekomme: '<% request.getContextPath(); %>'.
Entfernen der umschließenden einfachen Anführungszeichen von '& lt;% request.getContextPath (); % & gt; '; gibt Syntaxfehler. Wie kann ich das Scrptlet oder den Ausdruck innerhalb einer js Funktion benutzen?
EDIT: Dieser Link hat eine Erklärung, die mir geholfen hat:
Ссылка
Es scheint, als würden Sie den JSP-Code in eine JavaScript-Seite oder zumindest in eine Nicht-JSP-Seite einfügen. Scriptlets können nur in einer JSP-Seite enthalten sein (normalerweise als * .jsp konfiguriert).
Die angegebene Anweisung würde, wenn sie vom JSP-Compiler verarbeitet würde, dazu führen, dass myVar gleich dem Scriptlet-Format ist, das Sie verwenden & lt;% ...% & gt; führt Java-Code zwischen den Tags aus, gibt jedoch kein Ergebnis zurück.
Um dieses Tag zu verwenden, müssten Sie also manuell einen Wert in den Anforderungs-Ausgabestream schreiben. Um die gewünschte Funktionalität zu erhalten, müssen Sie Folgendes tun:
%Vor%Nach alldem werden Scriptlets in den meisten Fällen als schlechte Praxis angesehen. In den meisten Fällen sollten Sie JSTL-Ausdrücke und benutzerdefinierte Tags verwenden.
Diese Codezeile muss in einem HTML <script>
-Tag in einer .jsp
-Datei platziert werden. Auf diese Weise verarbeitet JspServlet
die Scriptlets (und andere JSP / EL-spezifische Ausdrücke).
Beachten Sie, dass <%= %>
die richtige Syntax zum Drucken einer Variablen ist, <% %>
dagegen nicht.
Oder wenn es in einer eigenständigen .js
-Datei bereitgestellt werden soll, müssen Sie es in .jsp
umbenennen und am Anfang der Datei Folgendes hinzufügen (und die <script src>
URL entsprechend ändern):
Auf diese Weise wird JspServlet
es verarbeiten und der Browser wird angewiesen, den JSP-Antworttext als JavaScript anstelle von HTML zu interpretieren.
Unabhängig vom konkreten Problem, beachten Sie, dass Scriptlets als schlechte Praxis . Benutze EL.
%Vor% Sie können scriptlet
in javascript
nicht ausführen, indem Sie ihm die normale .js
Erweiterung geben. Sie können jedoch Ihrer .js
die Dateierweiterung .jsp
geben und sie dann direkt als:
und jetzt können Sie jsp
in Ihrem javascript
like:
Diese Aktion ist vollständig gültig, da das, was bestimmt, ob eine Datei eine javascript
-Datei ist oder nicht, der MIME-Medientyp ist. Sie können MIME von JSP aus festlegen:
Sie haben vergessen, put = vor der Anfrage auszusetzen und zu entfernen; nach getContextPath ()
Tags und Links javascript jsp