web-dev-qa-db-ja.com

JavaScript変数をJava JSPの変数に割り当てます

そこのエルロ、

Javascript変数の値をJava変数に割り当てようとしています。しかし、これを行う方法がわかりませんか?たとえば次のようになります。

<html>
<head>
   <script type="text/javascript">
       function return variable(){
          var a = "hello";
          return a;
       }
   </script>
</head>
<body>

<%
   //The Java code
   String b = //how do I get that javascript variable here?
%>

</body>
</html>
20
user818700

Javaコードはサーバー側のものであるため、単純にこれを行うことはできません。

あなたができることは、フォーム送信、またはURLパラメータを使用するか、AJAX呼び出しを使用して、計算された変数をJavaScriptからサーバーに送信することです

[〜#〜] html [〜#〜]

<input type="hidden" id="hiddenField"/>

このフィールドが<form>の下にあることを確認してください

Javascript

document.getElementById("hiddenField").value=yourCalculatedVariable;

サーバーでは、これをrequestの一部として取得します

21
Jigar Joshi

JSPのライフサイクルについて何か読む必要があります。これを試してください: http://en.wikipedia.org/wiki/File:JSPLife.png

JavaScriptはクライアントで実行されますが、jspを変更するには、サーバーにアクセスする必要があります。これは、Ajax(http://en.wikipedia.org/wiki/Ajax_%28programming%29)を介して実行できます。

Ajax関連のリンクを次に示します。 http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

1
Dragos

答えは「できない」です。 Java(JSPの場合)は、サーバー側のスクリプト言語です。つまり、すべてのJavaScriptコードの前にコンパイルおよび実行されます。JavaScript変数をJSP変数に割り当てることはできますが、それ以外の方法はできません可能であれば、変数をQueryStringに表示するか、フォームを介して(非表示フィールドを介して)渡し、ポストし、そのようにしてJSPを介して変数を抽出できますが、これにはページの再送信が必要です。

お役に立てれば。

1
AlphaMale

JavaScriptはクライアント側で起動され、JSPはサーバー側で起動されます。ですから、それは不可能だと言えます。

1
Jwalin Shah

URLでJavaScript変数の値を渡さない限り、これを行う方法はないと思いますが、これはい回避策です。

0
fonini

jspはコンパイルされてhtmlサーバー側に変換されるのに対して、javascriptはクライアント側で実行されるため、できません。隠しhtml要素に値を設定し、さらに使用したい場合に備えてリクエストでサーブレットに送信することができます

0
dku.rajkumar

JavaScriptはクライアント側であり、JSPはサーバー側です。

したがって、Javascriptはブラウザに到達するまで実行されませんが、Javaはサーバーで実行されます。したがって、JavaはJavaScript変数の値を認識しません。

ただし、Java変数の値をJavaScript変数に割り当てます。

0
gprathour