在同一jsp上从javascript访问java变量
可以从同一页面上的javascript访问jsp中定义的字符串类型变量吗在同一jsp上从javascript访问java变量,java,jsp,Java,Jsp,可以从同一页面上的javascript访问jsp中定义的字符串类型变量吗 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1255"> <title>Insert title here</title> <script type="text/javascript"> foo(); function foo()
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Insert title here</title>
<script type="text/javascript">
foo();
function foo()
{
var value = "<%=myVar%>";
alert(value);
}
</script>
</head>
<body>
<%
String myVar="blabla";
%>
</body>
</html>
这将不起作用,因为您试图使用未定义的变量。生成的代码如下所示:
... = myVar;
//...
String myVar = "blabla";
没有道理,对吧?因此,为了实现这一点,您应该在使用变量之前声明它(一如既往):
foo();
函数foo(){
var值=”;
警报(值);
}
尽管如此,Scriptlet的使用仍然非常不受欢迎。假设您正在使用and(EL),则可以将其改写为:
foo();
函数foo(){
var value=“${myVar}”;
警报(值);
}
如果变量中包含类似于“
的字符,则此方法将失败。您可以使用JSTL中的
来转义结果:
var value = "<c:out value='${myVar}' />";
var值=”;
更多信息:
虽然理想情况下,您根本不会使用Scriptlet。为什么不使用Scriptlet?我知道@VgeShi可能重复,这是一个建议。如果myVar包含“字符”呢?有没有一种不用手动转义这些字符就可以安全地使用它的方法???@LuiggiMendoza我想要相反的结果。我想获取javascript值并将其传递给javavariable@ShaabanEbrahim为此,从客户端(javascript)向服务器发送请求。@LuiggiMendoza我想用java方法加密密码,而不需要向服务器发送请求
var value = "<c:out value='${myVar}' />";