2013-02-28 71 views
5
  • 我在Java文件会话变量(TestConnection.java)

session.setAttribute( “CONNECTION_DBNAME”,则dbname)。Javascript代码读取Java变量值

  • 如何阅读CONNECTION_DBNAME值到JavaScript文件。(utility.js)
+0

这是一个JSP(Java服务器页面)的Web应用程序? – mellamokb 2013-02-28 07:00:30

+0

是的..首先我需要读取从java到JavaScript的CONNECTION_DBNAME值。然后从JavaScript到jsp页面。 – Rachel 2013-02-28 07:01:52

回答

7
First access the variable in scriptlet. 

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

Then use like this. 

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

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

+2

为什么不使用JSP EL?另外,为了这个工作,它不能是一个JavaScript文件,除非这个容器是作为JSP进行处理的。 – 2013-02-28 14:21:41

0

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

JSF:

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

(从字面上会话,关键是行情需要在那里,如果它是一个字符串):

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

但是之前,您应该朝这个方向去考虑因为通过这种机制给JavaScript访问数据库没什么意义。除非你的数据库被公开暴露,否则你似乎是暴露数据库连接细节的途径,而客户端应该不需要或不需要这些细节。您的服务器/页面应作为中继来获取此信息。

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

3
<script> 
<% 
    String dbname=(String)session.getAttribute("CONNECTION_DBNAME"); 
%> 
    </script> 

这个代码是有用的给你..

1

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

之后,你可以在你的JavaScript中获得的价值通过var dbConnName=document.getElementById("txtData").value;

你就完成了。

1

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();