日期:2014-05-18  浏览次数:20692 次

如果JS里面想循环的调用JAVA代码
<html>
<head>
<title>
jsp1
</title>
<script>
var   interval   =   null;
var   time   =   5000;

function   InitSendInfo(){
interval   =   setTimeout( "getSendLogInfo() ",time);
}

function   getSendLogInfo(){
<%
System.out.println( "Hello! ");
%>
        sendLogInfoTask();
}

function   sendLogInfoTask(){
interval   =   setTimeout( "getSendLogInfo() ",time);
}
</script>
</head>

<body   bgcolor= "#ffffff "   onload= "InitSendInfo() ">

</body>
</html>

看后台,只打印了一次 "hello ".

该怎么才能实现循环打印呢?

------解决方案--------------------
java代码只在服务器端编译时才执行,所以才会执行一次。

一般是使用js调用页面元素,而页面元素可以存储java代码的值。
------解决方案--------------------
把java代码放个jsp里 然后放个iframe 用js循环刷新
------解决方案--------------------
当你第一次打开页面的时候输出hello,其实并不是js起到的作用。jsp编译后的getSendLogInfo()变为了以下内容:
function getSendLogInfo(){
sendLogInfoTask();
}
由此可以看出是不可能循环打印的。
如果你非要调用java代码进行循环打印,不妨试一下ajax。有个组件叫dwr,很好的封装了ajax,使用起来也很简单。