Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一jsp上从javascript访问java变量_Java_Jsp - Fatal编程技术网

在同一jsp上从javascript访问java变量

在同一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()

可以从同一页面上的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()  
{  
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值=”;
更多信息:


您的myVar在哪里定义?
虽然理想情况下,您根本不会使用Scriptlet。为什么不使用Scriptlet?我知道@VgeShi可能重复,这是一个建议。如果myVar包含“字符”呢?有没有一种不用手动转义这些字符就可以安全地使用它的方法???@LuiggiMendoza我想要相反的结果。我想获取javascript值并将其传递给javavariable@ShaabanEbrahim为此,从客户端(javascript)向服务器发送请求。@LuiggiMendoza我想用java方法加密密码,而不需要向服务器发送请求
var value = "<c:out value='${myVar}' />";