So verwenden Sie Scriptlet in JavaScript

8

Kann jemand dieses Beispiel testen und die Ergebnisse teilen? Ссылка
Wenn ich das tue:

%Vor%

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:
Ссылка

    
Victor 01.03.2011, 17:57
quelle

4 Antworten

3

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.

    
Kris Babic 01.03.2011, 18:12
quelle
5

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).

%Vor%

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):

%Vor%

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%     
BalusC 01.03.2011 18:05
quelle
1

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:

verlinken %Vor%

und jetzt können Sie jsp in Ihrem javascript like:

verwenden %Vor%

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:

%Vor%     
Raman Sahasi 08.08.2016 05:20
quelle
0
%Vor%

Sie haben vergessen, put = vor der Anfrage auszusetzen und zu entfernen; nach getContextPath ()

    
Arnold Parge 09.01.2016 23:23
quelle

Tags und Links