JavaScript値をJSPでスクリプトレットに渡す方法を教えてもらえますか?
JavaScript値はクライアント側であり、スクリプトレットはサーバー側で実行されています。そのため、スクリプトレットでjavascript変数を使用する場合は、それらを送信する必要があります。
これを実現するには、入力フィールドに保存してフォームを送信するか、ajaxリクエストを実行します。このためにJQueryを検討することをお勧めします。
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);
%>
簡単、できません!
JSPはサーバー側であり、javascriptはクライアント側です。つまり、javascriptが評価される時点では、「jspコード」はもうありません。
私はこの質問を次のように解釈しました:
「値を渡す方法を教えてもらえますかfor JSPで使用するJavaScript?」
その場合、このHTMLファイルはサーバーで計算された変数をJSPのJavaScriptに渡します。
<html>
<body>
<script type="text/javascript">
var serverInfo = "<%=getServletContext().getServerInfo()%>";
alert("Server information " + serverInfo);
</script>
</body>
</html>
これは、ここに着く他の人々のためです。まず、サーブレットが必要です。 @POSTリクエストを使用しました。 jspファイルには、これを行う2つの方法があります。
Jspを初めて使用する場合のAJAXの複雑な方法:Javaクラスで使用するjavascript変数を使用して投稿を行い、JSPを使用してJava関数を呼び出す必要がありますリクエスト内:
$(document).ready(function() {
var sendVar = "hello";
$('#domId').click(function (e)
{
$.ajax({
type: "post",
url: "/", //or whatever your url is
data: "var=" + sendVar ,
success: function(){
console.log("success: " + sendVar );
<%
String received= request.getParameter("var");
if(received == null || received.isEmpty()){
received = "some default value";
}
MyJavaClass.processJSvar(received);
%>;
}
});
});
});
JSPを使用した簡単な方法:
<form id="myform" method="post" action="http://localhost:port/index.jsp">
<input type="hidden" name="inputName" value=""/>
<%
String pg = request.getParameter("inputName");
if(pg == null || pg.isEmpty()){
pg = "some default value";
}
DatasyncMain.changeToPage(pg);
%>;
</form>
もちろん、この場合、JSから入力値をロードする必要があります(これまで、別のロード方法を見つけていません)。
あなたが期待しているように、それは不可能です。しかし、あなたはこのようなことをすることができます。 Javaスクリプト値をサーブレット/コントローラーに渡し、処理を行ってから、この値を必要に応じてオブジェクトに配置してjspページに渡します。この値を次のように使用できます。あなたが欲しい。
それはできませんが、反対のことはできます。
あなたのJSPでは次のことができます
<%
String name = "John Allepe";
request.setAttribute("CustomerName", name);
%>
Jsの変数にアクセスします
<script>
var name = "<%= request.getAttribute("name") %>";
alert(name);
</script>
JavascriptでJavaScript値をあるjspから別のjspに渡したい場合は、URLRewritingテクニックを使用してjavascript変数を次のjspファイルに渡し、リクエストオブジェクトの次のjspでそれにアクセスします。
そうでなければできませんやってください。