JSP で JavaScript の値を Scriptlet に渡す方法を誰か教えてもらえますか?
9 に答える
2つの方法を提供できます。
a.jsp、
<html>
<script language="javascript" type="text/javascript">
function call(){
var name = "xyz";
window.location.replace("a.jsp?name="+name);
}
</script>
<input type="button" value="Get" onclick='call()'>
<%
String name=request.getParameter("name");
if(name!=null){
out.println(name);
}
%>
</html>
b.jsp、
<script>
var v="xyz";
</script>
<%
String st="<script>document.writeln(v)</script>";
out.println("value="+st);
%>
JavaScript の値はクライアント側であり、スクリプトレットはサーバー側で実行されています。そのため、スクリプトレットで JavaScript 変数を使用する場合は、それらを送信する必要があります。
これを実現するには、それらを入力フィールドに保存してフォームを送信するか、ajax リクエストを実行します。これについては、JQueryを調べることをお勧めします。
簡単です、できません!
JSP はサーバー側、javascript はクライアント側です。これは、javascript が評価される時点で「jsp コード」が存在しないことを意味します。
私はこの質問を次のように解釈しました。
「 JSP で使用する JavaScript の値を渡す方法を誰か教えてもらえますか?」
その場合、この HTML ファイルは、サーバーが計算した変数を JSP の JavaScript に渡します。
<html>
<body>
<script type="text/javascript">
var serverInfo = "<%=getServletContext().getServerInfo()%>";
alert("Server information " + serverInfo);
</script>
</body>
</html>
JavaScriptであるjspから別のjspにjavascript値を渡したいと言っている場合は、URLRewritingテクニックを使用してjavascript変数を次のjspファイルに渡し、リクエストオブジェクトの次のjspでそれにアクセスします。
そうでなければ、それを行うことはできません。
あなたが期待しているように、それは不可能です。しかし、あなたはこのようなことをすることができます。Javaスクリプトの値をサーブレット/コントローラーに渡し、処理を行ってから、この値を要件としていくつかのオブジェクトに入れてjspページに渡します。その後、必要に応じてこの値を使用できます。