request.setAttribute()里可以存数组吗?我这样写是错的  request.setAttribute("result",  res[]);,写好了在jsp页面怎么获取这个数组的每个值

解决方案 »

  1.   

    可以存放任何对象,所以我的理解是只能存放对象,你传递的不是一个对象吧?
    改成这样试试呢?//创建一个res对象,是一个string数组,给他赋值3个元素,分别是0,1,2
    String res[] = new String{"0", "1", "2"};
    //把对象放入request
    request.setAttribute("result", res);
    //然后在jsp里这样写
    <%
      //在前台获取后台传递的对象,注意,要强转一下类型,不然会报错的
      String[] res = (String[])request.getAttribute("result");
      //循环使用就行了,不知道是不是length(),或者是size()?反正类似啦
      if (res != null && res.length() > 0){
        for (int i = 0; i < res.length(); i ++){
          out.println("第" + i + 1 + "个元素的值=" + res[i]);
        }
      }
    %>话说我也是新手,所以可能用的方法是错误的,因为我好多语法都没记下来,只是给你演示一下吧,你可以按照你的理解再试验一遍。
      

  2.   

    首先数组肯定是可以的。你数值定义的习惯不好,
    应该是
    String[] res = {};
    request.setAttribute("result", res)还有你前台用的jsp取还是标签来取,
    用iterator标签的话,最后把数组转成list传到前台
      

  3.   

    是没有问题的 保证您的“result” 是唯一的就行 。
    别有变量重名了 否则 getAttribute的值可能不是您想要的
      

  4.   

    当然可以
    action里面request.setAttribute("results", res);jsp上这样取
    <c:forEach items="${results}" var="result">${result.username },${result.password },${result.gender }<br/></c:forEach>