1.代码如下。代码标红的几句为什么不运行呢,我想先把远程的数据放到本地数组里来,然后再在js里显示这些数据,但是后面的代码都不运行,是什么原因呢?
2.关于jsp中js的问题,是不是在jsp中把所有有java代码的地方填上后把生成的页面返回给客户端,再在客户端解析这些javascript代码?
3.如果我想在jsp中实现一条结果或记录出来后就立即显示在页面上,而不是整个页面生成完毕后才显示,有没有什么办法。out.println()是这样做的吗?
谢谢各位。<script   language= "javascript ">
function   dspl(msg,bgcolor,dtop,delft){
this.msg=msg;
this.bgcolor=bgcolor;
this.dtop=dtop;
this.dleft=delft;
}
var   link=new   Array();
<%
for(int   i=0;i < al_wf.size() ;i++)
{
%>
link[<%=i%>]=new   dspl( ' <%=(al_wf.get(i))[1]%> ', 'lightyellow ',60,500) ;
<%
}
%>
var s="sssttt";
alert("ssss");
alert(s);

</script> 

解决方案 »

  1.   

    如果要是你这样的从数据库返回数据的话完全可以使用Ajax来做把数据放到回调函数中在页面的JavaScript中做出解析在放到页面中。
      

  2.   

    JavaScript是客户端脚本,<% …… %>是服务器端脚本,二者不能交互的!除非用Ajax。
      

  3.   

    谢谢,请问具体如何操作,我开始是这样想的:在java后台得到数据,调用前台的js展示数据,但是不知道如何调用前台的回调函数,如果调用后台的回调函数又操作不了页面,请再详细说明下。
      

  4.   

    1。for(int   i=0;i < al_wf.size() ;i++)
    首先看你的al_wf数组,有可能没有取到,这里就会产生问题;
    2。假设已经取到它了
    function   dspl(msg,bgcolor,dtop,delft){
    this.msg=msg;
    this.bgcolor=bgcolor;
    this.dtop=dtop;
    this.dleft=delft;
    }
    这里的thi.XXXX,不知道哪里来的。
    3。
    <script   language= "javascript ">
    function   dspl(msg,bgcolor,dtop,delft){
    this.msg=msg;
    this.bgcolor=bgcolor;
    this.dtop=dtop;
    this.dleft=delft;
    }
    var   link=new   Array();
    <%
    for(int   i=0;i < al_wf.size() ;i++)
    {
    %>
    link[<%=i%>]=new   dspl( ' <%=(al_wf.get(i))[1]%> ', 'lightyellow ',60,500) ;
    <%
    }
    %>var s="sssttt";
    alert("ssss");
    alert(s);

    </script> 
    JS从上到下运行,前面代码出现问题,导致红色部分不能显示
      

  5.   

    谢谢。运行完后在页面上显示的代码如下 ,应该可以显示出来吧,你说的第一个问题确实是有,不过应该不影响显示出来吧?<script   language= "javascript "> 
    function   dspl(msg,bgcolor,dtop,delft){
    this.msg=msg;
    this.bgcolor=bgcolor;
    this.dtop=dtop;
    this.dleft=delft;
    }
    var   link=new   Array();
     
    link[0]=new   dspl( ' 鲁蓉蓉 ', 'lightyellow ',60,500) ;
     
    var s="sssttt";
    alert("ssss");
    alert(s);
    </script> 
      

  6.   

    楼主很厉害啊。在javascript里竟然能写入java代码。。高手呀
      

  7.   

    JSP显示数据的方式很多种,首先我不建议直接在JSP页面上拼java脚本。
    用得最多的,就是通过servlet这种模式返回数据,然后在页面上循环遍历出来,把业务逻辑处理,写到业务处理类里面。
    看了一下你的问题,js代码如果要与Java代码结合,只能通过拼脚本,或者用封装好的ajax框架,例如DWR,它就可以在JS里调用JAVA的方法 。
    第二个问题的原理我也不是很清楚,就不瞎扯了,第三个问题,如果要达到没有刷新或者说是眼睛看到即时的效果,最好的办法就是用ajax,ajax非常好用,你可以研究下。
    计算机执行都有个先后顺序,只是因为它的速度超过人的肉眼,所以它的消息实际上不是即时的,只是看到的感觉是这样而已。
      

  8.   

    这个是jsp代码,有什么奇怪的?
      

  9.   

    我给你两个建议:1.如果是客户端调用服务器端的话从代码的可维护性而言推荐还是ajax来调用,返回一个json结构的数据在客户端解析 2.js中可以调用java代码的,但是我现在都是jstl代替java代码的,可以通过类似var myvar="${item.title}"方式顺利读取服务器端的数据 所以你关键还是要着眼于数据的作用范围 然后读取 循环什么逻辑的东西在客户端实现 而不是单纯的运行java程序
      

  10.   

    真是晕,这句话都写错了:<script   language= "javascript "> 
    应该是<script    type= "text/javascript">
    对不起大家
      

  11.   

    <% %> 有问题。不能用这种形式在js中
      

  12.   

    1.代码如下。代码标红的几句为什么不运行呢,我想先把远程的数据放到本地数组里来,然后再在js里显示这些数据,但是后面的代码都不运行,是什么原因呢?
    可能是前面的代码有错,导致后面的代码不能运行。2.关于jsp中js的问题,是不是在jsp中把所有有java代码的地方填上后把生成的页面返回给客户端,再在客户端解析这些javascript代码?
    与楼上的看法一样,不建议在jsp中拼凑js代码。这样是不可取的。无论是在逻辑上,还是在后期的维护上都是不可取的。如果要想让js操作java对象,应该使用其他的渠道,比如json。3.如果我想在jsp中实现一条结果或记录出来后就立即显示在页面上,而不是整个页面生成完毕后才显示,有没有什么办法。out.println()是这样做的吗? 
    有办法的,这个取决于你的服务器的设置。一般来说,服务器为了取得效率,是设置了缓冲的。也就是说,等响应的内容达到一定的长度才发送给浏览器。如果有很紧急的输出,可以用out.flush()强制输出。但这同样是不太好的做法。
      

  13.   

    LZ 你 循环递归了dspl(,,,)这个方法
     下面的代码 怎么肯能还走的下去了?