java变量和javascript变量之间的传递示例

  最近在用jsp做一个网站,其间涉及到java变量和javascript变量之间的互换,虽然网上资料众多,但是众说纷纭,并且很多都是带有误导性,做了许多尝试,终于比较清楚的搞懂了这个问题。通俗一点来讲,就是说java代码是运行在服务器上的,返回的值只是静态的存在于页面,而javascript是脚本语言,是运行在客户端的!它们是两种完全不同的语言,变量不能直接进行交换,但是通过一定的方式,变量可以传递。

  java变量传递给javascript变量,这个比较简单,就是平时的普通方法就好:

  

复制代码 代码如下:

  var cnt = <%=number%>;

  注意别漏掉等号!这个没什么问题。

  javascript变量传递给Javab变量,这个稍微复杂一些,但是清楚了原理其实也很简单,这边主要是通过表单提交以及表单元素来获取和进行操作:

  

复制代码 代码如下:

  <script language="javascript">

  function button_click(cnt) {

  ++cnt;

  document.submitForm.msg.value = cnt;

  document.submitForm.submit();

  }

  </script>

  

复制代码 代码如下:

  <%

  number = request.getParameter("msg");

  if(number==null)

  number="1";

  RdData.setIndex(number);

  RdData.readData();

  out.println("<br />");

  out.print(RdData.getIndex() + ".");

  out.print(RdData.getTitle());

  out.println("<br />");

  out.println("A." + RdData.getStrA());

  out.println("<br />");

  out.print("B." + RdData.getStrB());

  out.println("<br />");

  out.print("C." + RdData.getStrC());

  out.println("<br />");

  out.print("D." + RdData.getStrD());

  %>

  <input name="index" type="text" value="<%=RdData.getIndex()%>" />

  <input type="button" value="btn" name="bt" onclick="button_click(<%=number%>)">

  <form name="submitForm">

  <input type="hidden" name="msg" value=<%=RdData.getIndex()%>/>

  </form>

  特别注意表单和javascript代码部分!通过表单的隐藏元素把数据库取出来的一个数据传给处理函数,进行相关操作后,提交表单,java代码通过request.getParameter()获取,就OK啦~~~其实当时挺纠结的一个问题是变量不同步,因为我要实现的功能是每点击按钮一次计数器加一并对数据库进行一次读操作,如果计数器不一致就会直接导致读取的顺序问题,刷新页面是可以解决问题,但是一直刷新也不是个好办法。于是想到传一个参数进去,OK,好了