jsp调用js的变量

JavaScript016

jsp调用js的变量,第1张

SP 页面通常嵌入 JS 代码,且 JS、JSP之间需要相互使用一些变量的值,但JSP代码在服务器运行、JS代码在客户端浏览器运行,所以涉及到JS和JSP值传递问题。其交互方式如下:

JS使用JSP中的变量:

<%

  String test = "I am testing !"// JSP片段中定义变量

%>

<SCRIPT LANGUAGE = "JavaScript" >

  var tmp = "<%=test %>"// 通过 "<%=javaCode %>" 引用jsp中的变量、方法等,注意:一定要加双引号

  alert(tmp)

</SCRIPT >

扩展资料

Js文件函数中调用另一个Js文件函数的方法:

在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能。 

html  文件

<!DOCTYPE html>

<html>

<head>

  <meta charset="UTF-8">

  <title>html文件</title>

</head>

<body>

    <script src="a.js"></script>

    <script src="b.js"></script>

</body>

</html>

可以将JAVA变量在JSP头部定义成全局变量。

然后可以分别在JS和JSP里调用。

因为可以将JS和JSP理解为两个相互独立的块。这2个块里面的变量都是局部变量。 而局部变量是不共享的。

首先很基础的:JS可以直接引用JAVA变量,但JAVA不能引用JS变量。因为页面是先编译JAVA再编译JS,代码如下:

String tbname="bd_bank"

out.write("<SCRIPT language="+"'"+"JavaScript"+"'"+">var tbname="+"'"+tbname+"'"+"</SCRIPT>")

%>

//下面的javascipt可以直接调用变量tbname

<script language="javascript">

alert(tbname)

</script>

//在js文件中的javascipt一样可以直接使用变量 tbname 啊。

<script language="JavaScript" src="../comm/dbgrid.js"></script>

反正两个原则记好:

1、jsp代码中可以构造javascipt语句,当然包括定义备用的javascipt的变量

2、理论上在整个页面中,任何一个地方定义的javascript代码都可以被正确使用。javascipt代码对位置不敏感。

jsp中是不能引用js变量的,jsp是服务端的,在服务器转发的时候数据已经定死在页面里面了

,而js是客户端的,可以不断通过客户端代码来修改js的值,因此js的值不能赋值给jsp的。如果硬要赋值的话可以虚拟一个表单提交,例如:

<form id="testForm" method="post" action="当前页面.jsp">

<input type='hidden' id="test1" name="val1" value="js的值">

</form>

<script>document.getElementById('testForm').submit()</script>

<% String val=request.getParamter('val1') %>

这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!