- 我在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