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,好了