下面是一段jsp中的代码,我本来想先弹出个框,根据客户的选择,在做相应的处理。但是下面的代码是先执行了Logger.debug(""do something......"");才执行js的confirm判断。请教高手有没有解决的方法
out.print(""<script language='javascript'>"");
out.print(""if (confirm('还有 ""+deptNamess+"" 协办部门未填写办理意见,您确定提交吗?')) {"");Logger.debug(""do something......"");//先执行out.print(""} else {"");
out.print("" window.location='xxx.jsp';"");
out.print(""}"");
out.print(""</script>"");

解决方案 »

  1.   

    log的优先级应该高一些,你尝试用System.out打印你的调试信息试试
      

  2.   

    我想不是这个问题,我本来是用其他逻辑代码的(操作数据库)也一样,这里是用Logger来替换下
      

  3.   

    可是不是啊,他总是先执行logger,才弹出对话框
      

  4.   

    是不是因为,jsp代码是顺序执行的,out.print是执行下来了,但是生成的html(js)代码在最后才出来的
      

  5.   

    应该是先执行logger,在服务器端编译后,需要把流发送到客户端,js才会被解释。logger是在服务器段就执行完了的。
      

  6.   

    yangxiao_jiang(哈哈)说的对另外,如果浏览器在解析HTML时,如果遇到<script>而没有找到</script>时,其间的javascript代码是不会被执行的
      

  7.   

    你的out.print是生成jsp页面,生成后才会执行js,顺序当然是那样了1,你可以在最后弹出
    2, 用两个方法代替的代码
    3,分别执行你的方法。你的意思是,用户选确认就显示数据之类,否则就转到另一个页面是不?
    如果你用对话框并且一个页面
    那么可能要用到ajax的或者先加载了数据,但是不显示,那就是只用js控制就好了