2016-03-31 6 views
0

Gibt es eine Möglichkeit, dass ich eine Variable, die ich in JavaScript-Funktion für die JSTL-Tags deklariert habe, bekommen kann?Kann var aus JavaScript senden, um es in JSTL zu verwenden c: set?

Javascript

var abc = document.getElementById('asdf').value; 

hier ist die JSP:

<input type="hidden" id="asdf" value="onetwothree" /> 

, und ich will die C deklarieren: Set von JavaScript

<c:set var="ex" value="${abc}" /> 

Der Zweck es "ex" Variable zu erhalten mit dem Wert "onetwothree".

Entschuldigung für die grobe Erklärung. Danke

+1

Warum müssen Sie auf eine Komponente von JSP in Javascript zugreifen und JavaScript-Variable verwenden, um eine Komponente in JSP aufzufüllen? Kannst du es nicht direkt machen, ohne JavaScript zu benutzen? –

+0

Was willst du 'ex' Variable für? Benötigt es eine Client-Eingabe? – S4beR

+0

Der nächste Schritt ist, ich werde die 'ex' Variable zu c: if verwenden. Ich dachte, ich kann nicht Eingabe-Typ direkt in der JSTL versteckt verwenden. –

Antwort

0

Sie tun es anders. es ist möglich, eine Variable in jsp von Javascript Code unten verwenden erklärt zuzugreifen

<c:set var="ex" value="test" /> 
<script type="text/javascript"> 
    var abc = '${ex}'; 
</script> 

aber auch andere Art und Weise um, wie Sie oben erwähnt nicht möglich

ist Wenn Sie DOM verändern suchen auf das, was ist in input vorgesehene Feld ein, dann würde ich vorschlagen, Code zu verwenden, wie unten (in Javascript)

var abc = document.getElementById('asdf').value; 

// assuming you want to print this value in a label 
document.getElementById('mylabel').innerHTML = abc; 

kurz , wenn Sie ein tun wollen y Änderung in DOM basierend auf Client-Eingabe, tun Sie es durch Javascript anstelle von JSP

+0

hi, aber gibt es irgendeinen Weg, dass ich die Variable aus Javascript verwenden und sie in jstl c verwenden kann: if? –

+0

nein, das ist nicht möglich. 'jstl' wird auf dem Server vor Ihrem' javascript' Code ausgeführt. Sie können die Seite jedoch mit Ihrer Javascript-Variable als Anforderungsparameter in URL aktualisieren und dann in jstl lesen. Ihre URL wird wie 'myurl/abc.htm? jsVar = abcValue' sein und dann in jstl als' 'eingelesen werden – S4beR

0

Sie können auf JSTL-Tags von Javascript nicht zugreifen, einfach weil diese Markierung nur Serverseite existiert (Klientenseite werden sie durch einfaches HTML ersetzt).

Sie können die Javascript-Variable immer als Anforderungsparameter senden und dann die Server-Seite verwenden.