欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java變量和javascript變量之間的傳遞示例

 更新時(shí)間:2014年05月16日 17:01:43   作者:  
用jsp做一個(gè)網(wǎng)站,其間涉及到j(luò)ava變量和javascript變量之間的互換,下文給出不錯(cuò)的解決方案,希望對(duì)大家有所幫助
最近在用jsp做一個(gè)網(wǎng)站,其間涉及到j(luò)ava變量和javascript變量之間的互換,雖然網(wǎng)上資料眾多,但是眾說紛紜,并且很多都是帶有誤導(dǎo)性,做了許多嘗試,終于比較清楚的搞懂了這個(gè)問題。通俗一點(diǎn)來講,就是說java代碼是運(yùn)行在服務(wù)器上的,返回的值只是靜態(tài)的存在于頁(yè)面,而javascript是腳本語言,是運(yùn)行在客戶端的!它們是兩種完全不同的語言,變量不能直接進(jìn)行交換,但是通過一定的方式,變量可以傳遞。

java變量傳遞給javascript變量,這個(gè)比較簡(jiǎn)單,就是平時(shí)的普通方法就好:
復(fù)制代碼 代碼如下:

var cnt = <%=number%>;

注意別漏掉等號(hào)!這個(gè)沒什么問題。

javascript變量傳遞給Javab變量,這個(gè)稍微復(fù)雜一些,但是清楚了原理其實(shí)也很簡(jiǎn)單,這邊主要是通過表單提交以及表單元素來獲取和進(jìn)行操作:
復(fù)制代碼 代碼如下:

<script language="javascript">
function button_click(cnt) {
++cnt;
document.submitForm.msg.value = cnt;
document.submitForm.submit();
}
</script>

復(fù)制代碼 代碼如下:

<%
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代碼部分!通過表單的隱藏元素把數(shù)據(jù)庫(kù)取出來的一個(gè)數(shù)據(jù)傳給處理函數(shù),進(jìn)行相關(guān)操作后,提交表單,java代碼通過request.getParameter()獲取,就OK啦~~~其實(shí)當(dāng)時(shí)挺糾結(jié)的一個(gè)問題是變量不同步,因?yàn)槲乙獙?shí)現(xiàn)的功能是每點(diǎn)擊按鈕一次計(jì)數(shù)器加一并對(duì)數(shù)據(jù)庫(kù)進(jìn)行一次讀操作,如果計(jì)數(shù)器不一致就會(huì)直接導(dǎo)致讀取的順序問題,刷新頁(yè)面是可以解決問題,但是一直刷新也不是個(gè)好辦法。于是想到傳一個(gè)參數(shù)進(jìn)去,OK,好了

相關(guān)文章

最新評(píng)論