- 我在Java文件會話變量(TestConnection.java)
session.setAttribute( 「CONNECTION_DBNAME」,則dbname)。Javascript代碼讀取Java變量值
- 如何閱讀CONNECTION_DBNAME值到JavaScript文件。(utility.js)
session.setAttribute( 「CONNECTION_DBNAME」,則dbname)。Javascript代碼讀取Java變量值
First access the variable in scriptlet.
<%
String param= (String)session.getAttribute("CONNECTION_DBNAME");
%>
Then use like this.
<script>
var X = '<%=param%>';
</script>
然後您可以使用x訪問該名稱。
爲什麼不使用JSP EL?另外,爲了這個工作,它不能是一個JavaScript文件,除非這個容器是作爲JSP進行處理的。 – 2013-02-28 14:21:41
您不能從客戶端訪問會話變量。您可以爲客戶端提供Ajax調用以動態檢索值,或者將值設置在腳本塊中。
JSF:
<script>var dbName = "#{myBean.value}";</script>
(從字面上會話,關鍵是行情需要在那裏,如果它是一個字符串):
<script>var dbName = "#{session.getAttribute('CONNECTION_DBNAME')}";</script>
但是之前,您應該朝這個方向去考慮因爲通過這種機制給JavaScript訪問數據庫沒什麼意義。除非你的數據庫被公開暴露,否則你似乎是暴露數據庫連接細節的途徑,而客戶端應該不需要或不需要這些細節。您的服務器/頁面應作爲中繼來獲取此信息。
現在,如果這是一個管理控制檯,那麼你可能仍然不希望它在JavaScript中,但顯示設置是可以接受的。無論如何,除非連接詳細信息是用戶特定的,否則在會話中可能不需要它們。
<script>
<%
String dbname=(String)session.getAttribute("CONNECTION_DBNAME");
%>
</script>
這個代碼是有用的給你..
您可以使用隱藏的元素在JSP從會議獲得的價值,如: - <textarea id="txtData" style.display='none'><%=session.getAttribute("CONNECTION_DBNAME") %></textarea>
之後,你可以在你的JavaScript中獲得的價值通過var dbConnName=document.getElementById("txtData").value;
你就完成了。
Scriptlets在十多年前就已經脫穎而出!
一個更好的辦法... 在JSP中,包括在一個隱藏的DIV值:
<div id="javaValues" style="display: none;">
<div id="employee">${employee}</div>
<div id="dept">${dept}</div>
</div>
使用<div>
的,而不是<input type="hidden">
,因爲他們不會與你的表單張貼干擾。
在javascript中(假設jQuery的),那麼你可以訪問值,例如:
var employee = $("#employee").html().trim();
var dept = $("#dept").html().trim();
這是一個JSP(Java服務器頁面)的Web應用程序? – mellamokb 2013-02-28 07:00:30
是的..首先我需要讀取從java到JavaScript的CONNECTION_DBNAME值。然後從JavaScript到jsp頁面。 – Rachel 2013-02-28 07:01:52