在两个页面中传值的时候
var a=<%=request.getParameter("acc_type")%>;如果传过来的acc_type是一个空字符串("")的时候,就会报错。必须改为
var a='<%=request.getParameter("acc_type")%>';而不为空字符串的时候,可以不加引号。请问这是为什么?
在java中空字符串可以传给String变量,js中空字符串可以传给var变量。

解决方案 »

  1.   

    要分清动态和静态。你现在等于是在动态的产生JS脚本。如果request.getParameter返回空串,那么第一个返回到客户端的脚本是:
    var a=;(而不是var a="";)
    当然是语法错误,而第二个返回给客户端的则是:
    var a='';(而不是var a='""';)
    所以没有问题。
      

  2.   

    楼上正解。当acc_type是空的时候你就变成
    var a = 当然是非法的。而且这里明显是要放一个''的,即使不是空也应该放引号