我测试了一下你上面的代码 在查看源文件的时候
是 
function f1(id) 

      if(id== "001") 
  { 
                
          } 
} 这个样子的了。
因为jsp 在转化为 servlet后 <%%>中的东西会被放到 service();方法中去。 而你的 javascript肯定不会。
所以 你的 js就控制不了你的 java 代码了。
如果非得要这么做 Ajax 可以很好的 处理这类问题。

解决方案 »

  1.   

    你的思路就有问题。JSP是在服务器端执行的,返回给客户端的是HTML的代码和你的JS。你的JS在客户端浏览器中由浏览器来解释执行。也就是说JSP在服务器端先执行,也就是执行其中的Java代码,生成HTML+JS反给客户端浏览器。再由客户端浏览器来执行其中的JS代码。
      

  2.   


    既然一加载jsp就自动运行了<%...%>,则还没用ajax时, <%a = "001";%> 就运行了,且a已经等于001了呀,如果我刚开始就不希望运行<%a = "001";%>怎么办?既然js不能控制java,有没有能控制的呢?或者有什么新技术可以解决这个难道呢?
      

  3.   


    确实如此,js是不可以控制java的,要实现类似的功能,如楼上大虾们所言,只能学dwr或ajax了,这几天简单学了一下dwr,收获挺大的,本贴就此结了吧,最后感谢诸位的热情帮助的啦.