5
  • 我在 java 文件中有一个会话变量。(TestConnection.java)

session.setAttribute("CONNECTION_DBNAME", dbName);

  • 如何将 CONNECTION_DBNAME 值读入 javascript 文件。(utility.js)
4

5 回答 5

7
 First access the variable in scriptlet.

 <% 
    String param= (String)session.getAttribute("CONNECTION_DBNAME");
 %>

Then use like this.

  <script>
  var X = '<%=param%>';
  </script>

然后您可以使用 x 访问该名称。

于 2013-02-28T07:04:29.567 回答
3
    <script>
<%
    String dbname=(String)session.getAttribute("CONNECTION_DBNAME");
%>  
  </script>

这段代码对你有用..

于 2013-02-28T07:05:55.147 回答
1

您可以使用 JSP 中的隐藏元素从会话中获取值,例如:- <textarea id="txtData" style.display='none'><%=session.getAttribute("CONNECTION_DBNAME") %></textarea>

之后,您可以通过var dbConnName=document.getElementById("txtData").value;

你就完成了。

于 2013-02-28T07:12:26.810 回答
1

十多年前,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();
于 2014-03-21T12:09:16.597 回答
0

您无法从客户端访问会话中的变量。您可以为客户端提供 Ajax 调用以动态检索值,或将值设置保留在脚本块中。

JSF:

<script>var dbName = "#{myBean.value}";</script>

(从字面上看,如果是字符串,关键是引号需要在那里):

<script>var dbName = "#{session.getAttribute('CONNECTION_DBNAME')}";</script>

但是,在朝着这个方向前进之前,您应该重新考虑,因为通过这种机制让 JavaScript 访问您的数据库几乎没有意义。除非您的数据库是公开的,否则您似乎走在了公开数据库连接详细信息的道路上,而客户端不应该需要或拥有这些详细信息。您的服务器/页面应充当获取此信息的中继。

现在,如果这是一个管理控制台,那么您可能仍然不希望在 JavaScript 中使用它,但显示设置是可以接受的。无论如何,除非连接详细信息是用户特定的,否则您可能在 Session 中不需要它们。

于 2013-02-28T07:03:49.017 回答