SP 页面通常嵌入 JS 代码,且 JS、JSP之间需要相互使用一些变量的值,但JSP代码在服务器运行、JS代码在客户端浏览器运行,所以涉及到JS和JSP值传递问题。其交互方式如下:
JS使用JSP中的变量:
<%
String test = "I am testing !"// JSP片段中定义变量
%>
<SCRIPT LANGUAGE = "JavaScript" >
var tmp = "<%=test %>"// 通过 "<%=javaCode %>" 引用jsp中的变量、方法等,注意:一定要加双引号
alert(tmp)
</SCRIPT >
扩展资料
Js文件函数中调用另一个Js文件函数的方法:
在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能。
html 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>html文件</title>
</head>
<body>
<script src="a.js"></script>
<script src="b.js"></script>
</body>
</html>
jsp中是不能引用js变量的,jsp是服务端的,在服务器转发的时候数据已经定死在页面里面了,而js是客户端的,可以不断通过客户端代码来修改js的值,因此js的值不能赋值给jsp的。如果硬要赋值的话可以虚拟一个表单提交,例如:
<form id="testForm" method="post" action="当前页面.jsp">
<input type='hidden' id="test1" name="val1" value="js的值">
</form>
<script>document.getElementById('testForm').submit()</script>
<% String val=request.getParamter('val1') %>
这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!
在写jsp中有时会需要把js的变量赋给java变量,或者将java的变量赋给js变量的情况,如果js处理的不好只能获取到undefined,java处理不好就只能获取到null。因此这次做个小笔记,记录一下~
java变量传给js:
var writer="<%=user.getUsername() %>" //这里的user是自己实例化的对象, 注意要将引号”"加上 ;否则alert(typeof (writer) )的值是undefined
java接收js传来的值:
js的值如果是undefined,那传到后台的值也就是null了。