java變數和javascript變數之間的傳遞樣本_JSP編程

來源:互聯網
上載者:User
最近在用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,好了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.