本帖最后由 Wuaner 于 2010-04-21 13:43:41 编辑

解决方案 »

  1.   

     request.setAttribute("refreshStrParam", "1,2");
     是设置属性值,你的“1,2”是什么意思啊?看试下1.2会得到什么?
      

  2.   


    我试下1.2干什么?题目写的很明白了,设置的属性为包含逗号的字符串,哥哥你这句“‘1,2’是什么意思”让我无言以对csdn这贴图功能咋不能用那?上面贴图显示有问题的话,见下图:
    http://dl.javaeye.com/upload/attachment/237647/4f64b7de-0a38-3791-a228-f462e42c0c6f.png
      

  3.   

    csdn丫的为什么不让编辑回复的帖子?debug跟踪request结果:
      

  4.   

    java里面的字符串操作内定了正则表达式,用request.setAttribute("refreshStrParam", "1\,2");
    试试
      

  5.   

    request.setAttribute("aaa","1,2");
    System.out.println(request.getAttribute("aaa"));
    完全没有问题丫在别的地方有改了?
      

  6.   

    问题原因已找到。后台request.setAttribute("refreshStrParam", "1,2");我在jsp的js中是这样调用request中的attribute的:
    <script type="text/javascript">
            //alert(<%=request.getAttribute("refreshStrParam")%>); //直接alert未加引号的request attr结果为1;这是为什么那?你试试alert(3,5)就知道了;
    aFunction(<%=request.getAttribute("refreshStrParam")%>);  
    </script>而这相当于是调用 aFunction(1,2),而非aFunction("1,2");aFunction的定义是只可接收一个参数的,故在aFunction中alert其参数,只拿到前一个参数1!!错就错在没在<%=request.getAttribute("refreshStrParam")%>的外围加引号!!!!
    A Example<html> 
    <script type="text/javascript">
    alert(3,5);
    function aFunction(value) {
    alert(value);
    }
    </script>
    <body>
    <input type="button" value="test" onclick="aFunction(1,2);">
    </body> 
    </html> 
    引以为戒: js代码中使用jsp标签在js和java代码间传值时,切记要在用到的java变量的外围加双引号""(如果java变量为纯数字类型的,可以不加,js可以将其识别为Number类型的;但任何时候都加上不失为一个好的习惯,可以让你不为莫名其妙的错误所困扰。)