你的form bean里面有这个属性的定义吗?

解决方案 »

  1.   

    request.setAttribute("category",cn);试试把上面的改成
    request.getsession().setAttribute("category",cn); 
    可能是request改变了吧
      

  2.   

    不错,你第一次请求时候action里面做了一个collection,填了资料后,提交是第二次请求,这时请求没通过,action怎么做那个action呢?所以找不到啦。
    最简单的方法就是如楼上那样放session里面
    或者你在formbean初始化的时候做这个collection。一般推荐后者。
      

  3.   

    我遇到同样的问题,原因楼上分析得很清楚了。
    我的解决办法是自定义了一个tag,放在jsp文件里。
      

  4.   

    或者你在formbean初始化的时候做这个collection。一般推荐后者。
    ----------------------------------------
    在formbean初始化时做这个collection是怎么来做的?
      

  5.   

    你的想法对头了,
    开始我在form里生成collection
    可是觉得违反了mvc的规则,而且搞得form乱糟糟的。
    最后把整个设计都改掉了。
      

  6.   

    form里面生成collection其实就是生成定义一个collection的属性啊,用户从前端输入的时候可以填这个collection,如果是从后端读出来,你也可以在Action里面填充这个collection啊,再在前端显示。
      

  7.   

    现在我采用了放入session里面,问题是解决了,可心里总感觉不是很好,又不知道在哪不好,呵呵
      

  8.   

    category是在action里设的, 你提交校验不通过, 是不会运行action的, 所以, category是没有设置的.  建议你在页面做客户端校验, 服务端需要校验的, 放到action里, 校验不通过, 重新设置一下category, 和form后再转向到录入页来.
      

  9.   

    collection如果能直接生成,也没什么不好,但
    要是从数据库中提取数据来生成这个collection,那怎么办呢?
      

  10.   

    private final static String CATEGORY="category";
     Collection cn=new ArrayList();
          for(int i = 0; i<list.size(); i++){
            LabelValueBean lb = new LabelValueBean((String)list.get(i),(String)list.get(i));
            cn.add(lb);
          }
          request.setAttribute(CATEGORY,cn);
    试试这段程序
      

  11.   

    一般可以这样的,你从数据库一个表中读出多条相同记录的时候,每一条记录应该放入一个和formbean差不多的object中吧,你在action里面把那个object转换成formbean不就可以了吗。然后把所有的formbean放在collection里面,再在前端显示不就ok了?