Ho uno scenario in cui ho bisogno di confrontare javascript varibable con l'oggetto java all'interno dello scriptlet della pagina jsp. Come posso ottenere la variabile javascript nello script jsp o l'altro modo funzionerà anche per me (ottenendo il valore dell'oggetto arraylist in javascript).ottieni il valore della variabile javascript in jsp scriptlet
risposta
Se avete bisogno di una variabile dal server in JavaScript, utilizzare Expression Language (supponendo che questa variabile viene archiviato come richiesta, sessione, applicazione o un attributo page):
<%@taglib uri="http://example.com/functions" prefix="f" %>
<!-- ... -->
function showValues(str) {
var empListLength = ${empty empList ? 0 : fn:length(empList)};
}
Se avete bisogno di una variabile JavaScript nel scriptlet, sei sfortunato, questo è impossibile. L'unico modo per ottenere una variabile da una risorsa esterna è come parametro di richiesta.
Tralascio la risposta utilizzando scriptlets direttamente a causa its usage is highly discouraged.
@participantjava no, non è possibile. È necessario comprendere che Java viene eseguito sul lato server mentre JavaScript viene eseguito sul lato client. Sarebbe meglio se spiegassi cosa stai cercando di ottenere. –
Javascript viene eseguito nel browser e JSP vengono eseguiti sul server. Dichiarare la variabile di java script utilizzando scriptlets e quindi confrontare sul browser:
var x = <% = str%>
Quindi è possibile confrontare nel browser durante l'esecuzione del javascript. Oltre a ciò gli scriptlet non sono a conoscenza di qualcosa in JavaScript perché deve essere eseguito nel broswer e da quel momento gli scriptlet sono già stati eseguiti e convertiti in html, javascript o css.
È possibile, in due modi, assegnare il valore della variabile javascript allo script jsp.
primo modo Demo1.jsp
<script>
var name = "Gautam";
</script>
<%
String str = "<script>document.writeln(name)</script>";
out.println("value: " + str);
%>
Secondo Modo Demo2.jsp
<html>
<script>
function call()
{
var name = "Gautam";
window.location.replace("Demo2.jsp?name=" + name);
}
</script>
<input type="button" value="Get" onclick='call()'>
<%
String name = request.getParameter("name");
if (name != null)
{
out.println(name);
}
%>
</html>
Il primo modo non funziona: / –
Se avete bisogno di una variabile dal server in JavaScript
, utilizzare Expression Language
(un Questa variabile viene memorizzata come attributo di richiesta, sessione, applicazione o pagina):
Se è necessaria una variabile da JavaScript
nel numero scriptlet
, è impossibile. L'unico modo per ottenere una variabile da una risorsa esterna è come parametro di richiesta
Leggere su Ajax. È ovviamente quello di cui hai bisogno. Fai in modo che la tua funzione Javascript chiami un servlet che restituisce una risposta. – developerwjk
@developerwjk non è necessario aggiungere overhead utilizzando ajax quando può essere evitato ... –