有谁能告诉我如何在JSP中将JavaScript值传递给Scriptlet?
答案 0 :(得分:17)
我可以提供两种方式,
<强> 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);
%>
答案 1 :(得分:11)
您的javascript值是客户端,您的scriptlet正在运行服务器端。因此,如果您想在scriptlet中使用javascript变量,则需要提交它们。
要实现此目的,请将它们存储在输入字段中并提交表单,或执行ajax请求。我建议你研究一下JQuery。
答案 2 :(得分:2)
JSP是服务器端,javascript是客户端,意味着在评估javascript时不再有'jsp代码'。
答案 3 :(得分:1)
我把这个问题解释为:
“任何人都可以告诉我如何为 JavaScript传递值以便在JSP中使用吗?”
如果是这种情况,这个HTML文件会将服务器计算的变量传递给JSP中的JavaScript。
<html>
<body>
<script type="text/javascript">
var serverInfo = "<%=getServletContext().getServerInfo()%>";
alert("Server information " + serverInfo);
</script>
</body>
</html>
答案 4 :(得分:0)
如果你说你想在javascript中将javascript值从一个jsp传递到另一个jsp,那么使用URLRewriting技术将javascript变量传递给下一个jsp文件,并在请求对象的下一个jsp中访问它。
其他明智的你不能这样做。
答案 5 :(得分:0)
不可能像你期望的那样。但你可以这样做。将您的java脚本值传递给servlet / controller,进行处理,然后将此值传递给jsp页面,方法是将其放入某个对象中作为您的要求。然后您可以根据需要使用此值。
答案 6 :(得分:0)
你做不到,但你可以这样做:
在你的jsp中,你可以
<%
String name = "John Allepe";
request.setAttribute("CustomerName", name);
%>
访问js中的变量
<script>
var name = "<%= request.getAttribute("name") %>";
alert(name);
</script>