var g = "${first_Name}"
alert(g)
}
"<%=first_Name%>"这种方式只能取道jsp页面上定义的变量
比如
a.jsp:
<%@ page contentType="text/htmlcharset=GB2312" %>
<HTML>
<%! String a = "aaaaa"%>
<BODY BGCOLOR=cyan>
<FONT Size=1>
<P>这是一个简单的JSP页面
<BR>
</FONT>
<%=a %>
${a }
</BODY>
<HTML>
在跳转到该jsp页面的servlet中在request中设置了一个a
效果如下:
这是一个简单的JSP页面
aaaaa serveta
原因很简单:
对于每个jsp,服务器(比如tomcat)都会将其转换成java文件(后缀.java的文件),然后将其编译成class文件
"<%=%>"就是从这个java文件中去取变量值
而"${}"则是从容器中的四个区域去取值(page,request,session,application)
js取java的变量的值:方法①: var a = "<%=num%>"
方法②: 通过js控制html节点,如document.getElementByIdx_x_x("name"),$("#name").val()等
java取js值
一般是在表单中用一个的隐藏表单元素,然后在脚本中将js变量值赋给它:
var name=xy
form1.nameHidden.value=name
<input type="hidden" name="nameHidden"/>
当然不一定是隐藏域,可以是你需要的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代码对位置不敏感。