- 我在 java 文件中有一个会话变量。(TestConnection.java)
session.setAttribute("CONNECTION_DBNAME", dbName);
- 如何将 CONNECTION_DBNAME 值读入 javascript 文件。(utility.js)
session.setAttribute("CONNECTION_DBNAME", dbName);
First access the variable in scriptlet.
<%
String param= (String)session.getAttribute("CONNECTION_DBNAME");
%>
Then use like this.
<script>
var X = '<%=param%>';
</script>
然后您可以使用 x 访问该名称。
<script>
<%
String dbname=(String)session.getAttribute("CONNECTION_DBNAME");
%>
</script>
这段代码对你有用..
您可以使用 JSP 中的隐藏元素从会话中获取值,例如:-
<textarea id="txtData" style.display='none'><%=session.getAttribute("CONNECTION_DBNAME") %></textarea>
之后,您可以通过var dbConnName=document.getElementById("txtData").value;
你就完成了。
十多年前,Scriptlet 已被取缔!
更好的方法...在 jsp 中,将值包含在隐藏的 div 中:
<div id="javaValues" style="display: none;">
<div id="employee">${employee}</div>
<div id="dept">${dept}</div>
</div>
使用<div>
's 而不是<input type="hidden">
,因为它们不会干扰您的表单发布。
在 javascript(假设为 jQuery)中,您可以访问这些值,例如:
var employee = $("#employee").html().trim();
var dept = $("#dept").html().trim();
您无法从客户端访问会话中的变量。您可以为客户端提供 Ajax 调用以动态检索值,或将值设置保留在脚本块中。
JSF:
<script>var dbName = "#{myBean.value}";</script>
(从字面上看,如果是字符串,关键是引号需要在那里):
<script>var dbName = "#{session.getAttribute('CONNECTION_DBNAME')}";</script>
但是,在朝着这个方向前进之前,您应该重新考虑,因为通过这种机制让 JavaScript 访问您的数据库几乎没有意义。除非您的数据库是公开的,否则您似乎走在了公开数据库连接详细信息的道路上,而客户端不应该需要或拥有这些详细信息。您的服务器/页面应充当获取此信息的中继。
现在,如果这是一个管理控制台,那么您可能仍然不希望在 JavaScript 中使用它,但显示设置是可以接受的。无论如何,除非连接详细信息是用户特定的,否则您可能在 Session 中不需要它们。