如何通过jsp表达式标记将java字符串变量传递给javascript函数
How to pass java string variable to the javascript function by jsp expression tag?
我想使用jsp表达式标记将一个javaString变量传递给javascript函数参数。下面是我的jsp页面。
First.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
function stringGenerate(str){
var x = document.getElementsByTagName("input");
x[0].value = str;
}
function numberGenerate(num){
var x = document.getElementsByTagName("input");
x[1].value = num;
}
</script>
</head>
<body>
<%
String num ="1234567890";
String str = "abcdefghij";
%>
<input type="text" name="string" readonly="readonly"/>
<input type="text" name="number" readonly="readonly"/><br/><br/>
<input type="button" value="String Generate" onclick= "stringGenerate(<%=str %>)" />
<input type="button" value="Number Generate" onclick= "numberGenerate(<%=num %>)" />
</body>
</html>
当我点击值为"Number Generate"的按钮时,num变量值(1234567890)将显示在文本框上(name="Number"),但当我点击"String Generate"按钮时,那么相应的文本框(name="string")上没有显示任何内容。这里num和str都是字符串类型可变的,但为什么文本框上只显示num变量值,为什么不显示str变量值?
在HTML:中使用字符串时尝试使用单引号'
onclick= "stringGenerate('<%=str %>')"
^ ^
完整代码:
<input type="button" value="String Generate" onclick= "stringGenerate('<%=str %>')" />
原因是当浏览器渲染页面时,它将str和num值直接放在代码中,因此看起来像:
<input type="button" value="String Generate" onclick="stringGenerate(abcdefghij)"/>
浏览器基本上认为您正在尝试引用一个名为'abcdefghij'
的Javascript变量。
您应该在字符串文本前后添加'
字符,让javascript知道它应该使用该文本的值,而不是搜索具有该名称的变量。
str的声明应该是这样的,以使其工作:
String str = "''abcdefghij''";
请注意,您不能使用'"
进行转义,因为这会破坏您的代码。
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行