1. 程式人生 > >在jsp頁面中js獲取java中變數的值

在jsp頁面中js獲取java中變數的值

1。通過<%=java變數%>的方式賦值給js變數。

1、定義一個java變數

<%
  String a = "222";//定義一個string型別的java變數
%>

2、輸出給js

var k = <%=a%>;輸出變數值給k,這是的k是222
補充:
<% %> 標識裡面的是jsp程式碼,可以定義java變數
<%=變數 %> 輸出java變數資訊
2。js變數獲取jsp頁面中java程式碼的變數值。

方法:var JS變數名 = <%=JAVA變數名 %>
我們常常會將js檔案和jsp檔案分開寫,在js檔案中,上面的方法似乎不管用了。
也可以通過變通的方法來解決:
a.jsp

   <% String name = "zhangsan" %>
   <input type=”hidden“ name=“a” id="a" value="<%=name%>"

aa.js

      var n = document.getElementById('a').value;

使用jquery這樣做也更方便

3。java程式碼獲取js變數的值。

說明:在JSP中;Java部分是在伺服器端執行的;js部分是在客戶端的瀏覽器執行的;二者完全不相干。因此直接在JSP頁面上是無法在js、java和HTML變數之間進行呼叫的。
變通(解決方案):將js變數放到form中的一個;在後臺從form中取出變數放到隱藏域中;然後提交表單給要呼叫變數的頁面。這個頁面可以就是本身。示例如下:
bb.jsp頁面:

   <% String test5 = (String)request.getAttribute("test4"); %>
     <script type="text/javascript"> 
      var test1 = '111'; //定義js變數 
      document.form.test2.value = test1;
      //將js變數的值放到form中的一個隱藏域中 
      var formObj = document.getElementById('passForm');
      formObj.submit();
     <
/script> <form method="post" action="aa.jsp" id ="passForm"> <input id = 'test2' type = 'hidden' name="test2"> </form>

aa.jsp頁面中的Java程式碼:

<%
  request.setCharacterEncoding("utf-8");
  String txtMsg = request.getParameter("test2"); 
  out.println(txtMsg);
%> 

注:如果同一個頁面自己給自己傳值,aa.jsp和bb.jsp可以為同一頁面。