请问如何将JavaScript值传递到JSP中的Scriptlet?
请问如何将JavaScript值传递到JSP中的Scriptlet?
我可以提供两种方法:
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>
<script>
var v="xyz";
</script>
<%
String st="<script>document.writeln(v)</script>";
out.println("value="+st);
%>
<script>document.writeln(v)</script>
。 - Jeevanantham你的 Javascript 值是客户端的,而你的脚本是在服务器端运行的。因此,如果你想在脚本中使用你的 Javascript 变量,你需要将它们提交。
为了实现这一点,你可以将它们存储在输入字段中并提交表单,或者执行 ajax 请求。我建议你查看 JQuery 相关内容。
简单来说,你无法做到!
JSP是服务器端的,而JavaScript是客户端的,这意味着在JavaScript被执行时,就没有更多的“JSP代码”了。
<html>
<body>
<script type="text/javascript">
var serverInfo = "<%=getServletContext().getServerInfo()%>";
alert("Server information " + serverInfo);
</script>
</body>
</html>
String name = "John Allepe";
request.setAttribute("CustomerName", name);
访问JavaScript中的变量:
var name = "<%= request.getAttribute("CustomerName") %>";
alert(name);
这是给其他人来到这里的。 首先,您需要一个servlet。我使用了@POST请求。 现在,在您的jsp文件中,有两种方法可以做到这一点:
如果您是jsp的新手,可以使用AJAX进行复杂的方式: 您需要使用javascript var进行post,并使用JSP从请求内部调用您的java函数:
$(document).ready(function() {
var sendVar = "hello";
$('#domId').click(function (e)
{
$.ajax({
type: "post",
url: "/", //或者您的url
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加载输入值(到目前为止,我还没有想出另一种加载方式)。
您期望的不可能实现。但您可以尝试以下操作:将您的 JavaScript 值传递给 Servlet/Controller,进行处理,然后将该值放入某个对象中并根据您的要求传递到 JSP 页面中。然后,您可以根据需要使用此值。
我使用了脚本标记、声明标记和表达式标记的组合...
<%!
public String st;
%>
<%
st= "<html> <script> document.writeln('abc') </script> </html>";
%>
<%=
" a " + st + " <br> "
%>
在我的情况下,上述代码完全正常运行。