在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,


值得一提的是:两者确实有办法可以相互赋值,但有局限性:【原因如下】

jsp脚本是服务器端脚本——页面一加载就会随请求被服务器端立即执行返回

javascript是前端脚本——按页面逻辑和事件需求执行

出现的情况是:如果javascript脚本中绑定了一个点击事件,事件中需要插入一段jsp脚本,那么该jsp脚本仅在页面加载时请求一次服务器并返回,之后触发事件时,便会一直使用该返回值,而不会再向服务器发起请求来得到新的值,所以使用时需要注意,如果是一次性的获取服务器端拿过来的数据,可以这样用,否则无效。


若想每次触发js事件都能重新执行一次 jsp 脚本:只能通过异步发起请求来解决!!


以下将通用的处理方法小结如下:


java变量传给js好办,var a=<%=javaParam%>;注意要将引号"加上;


js变量给java稍微复杂点,一般是在表单中用一个 的隐藏表单元素,然后在脚本中将js变量值赋给它:

var jsParamValue=’aaaa’;

form1.jsParam.value=jsParamValue;

然后就可以request.getPrameter(jsPrama);来取得js变量值了


不能拿JS变量在页面上给java变量赋值; 相反可以用var jsParam = <%=javaParam%> 将java变量赋值给js变量.