因为想使用两个数组变量,所以考虑使用url传值,结果,我使用servlet的url传值,连一个数组都传不过去,请高手随手指导下,资料也查了不少了,还是不行!方法一:
servlet代码:
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s).forward(request,response);
jsp页面:
String s[]=(String[])request.getAttribute("jiechu"); 方法二:(网上查到的)
servlet代码:
response.sendRedirect("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s);
jsp页面:
String s[]=(String[])request.getAttribute(“jiechu”);两个方法都报的是空指针异常。
我用的方法是,request.setAttribute("jiechu",s );
request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp").forward(request,response);是正常的。

解决方案 »

  1.   

    不行就转成字符串放过去,到那边在拆分回来了,或者放到一个list中试试
      

  2.   

    (强制转换)request.getAttribute("jiechu")不行吗
      

  3.   

    request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s).forward(request,response);
    改为
    request.setAttribute("jiechu",s);
    request.getRequestDispatcher("/mokuai/logo/xiangmu/tuji/tujijiechu.jsp).forward(request,response);
    jsp:
    String s[]=(String[])request.getAttribute(“jiechu”);
      

  4.   

    好吧,我简单说一点其实,在Java的世界里,数组也是对象,一种特殊的对象。大家都知道Object有个toString()方法,如果其他类没有重写Object的toString()方法,比如String[] str = new String[]{"Hello","World"};
    System.out.println(str);就会调用从Object继承的toString()方法,打印出来的就是类似于[Ljava.lang.String;@5ffb18这样的字符串,其实就是默认调用其toString()方法
    所以,"/mokuai/logo/xiangmu/tuji/tujijiechu.jsp?jiechu="+s这种方式得到的是什么,就一目了然了建议:将数组拼接成字符串或者多个参数,再在后台拆分组合吧
      

  5.   

    嗯,其实我就是从后台传值到前台,最终的解决办法也是如你所说,用@和#相加,在前台拆分,其实,我不愿意如此做的原因是希望,前台,jsp页面上少些java的代码。不过,以我的水平,看来是做不到的。
      

  6.   

    url传参传数组是不行了,
    要不用post方式传参,
    必须用get方式的话,只能拆分成字符串或分解成多个参数来传例如:url?param=arr1,arr2,arr3
    或者
    url?param1=arr1&param2=arr2&param3=arr3