js里如何调用java后台代码里的一个变量,不是JSP啊 ,var a=<%=xxx %>这个我试过了,不行

JavaScript016

js里如何调用java后台代码里的一个变量,不是JSP啊 ,var a=<%=xxx %>这个我试过了,不行,第1张

java后台使用什么写的呢?

如果是servlet,你可以在sevlet中使用x.setAttribute(key,value)来存放一个值,其中的x是作用与对象,可以是page、request、session、application等作用域对象。

然后再前台可以使用<%=x.getAttribute(key)>来获取,并赋值给你的var a就可以了。

或者,你还可以使用jstl来获取,比如你存到request中了,就可以使用${requestScope.key}来获取。

如果后台使用的struts,直接用ognl来取得就可以了。

一般的浏览器中是无法通过js调用本地java程序的,但是可以调用嵌入到网页的applet的方法。交互方式如下:

<applet codebase = "." width = "400" height  = "400"

  name= "MyApplet" code = "test.applets.MyApplet1.class"> 

<script>

// js访问applet属性:document.appletName.appletField (属性必须是public的) 

// js访问Applet方法:document.appletName.appletMethod (方法必须是public的)

function showLable{

     // 调用test.applets.MyApplet1类的invokeByJS方法 

     document.applets["MyApplet"].invokeByJS('myvalue')

}

</script>

一、为Test写一个方法,不妨为dataToString(),把字符串数组变成一个字符串,格式为“

["A","B","C"]

但要注意字符中A中可能会含有双引号,所以需要替换"为"

二、在前台JSP页面中输出一段这样的语句:

<script>

var str = "<%=Test.toDataString()%>"

var arr = (str)

window.onload = function(){

for(var i=0i<arr.lengthi++){

//to do something

}

}

</script>

另一种方法就是在window.onload中用AJAX去取。利用AJAX必须写servlet。因为前面一种方法的jsp和servlet是等同的。

js方法中调用java的参数

<input type="image"

src="../../images/icons/setParmeter.jpg" onclick="Block(<%=flag%>)" />

<input type="text" id="isparemeter" value="<%=flag%>"/>