bean:write方法好像需要两个属性,一个是name,一个是property

解决方案 »

  1.   

     dlxu(Coding超过了15W行)
     
     
       bean:write方法好像需要两个属性,一个是name,一个是property
      感谢你,是有property属性,但书上说,indexId属性定义一个代表当前被遍历元素序号的变量,这个变量被存放在page范围内,可以被标签主体的<bean:write>标签访问。可见并不是因为少了property属性的原因。我现在就需要index这个循环变量的值还有没有人帮解决一下,问题解决马上送分,
     
     
      

  2.   

    把vector换成ArrayList或者HashMap试一试喃
      

  3.   

    新建FormBean:untitled1ActionForm
    里面有vec的get set方法,最好用String数组,在Action里给赋值<logic:iterate  indexId="i" name="untitled1ActionForm" property="vec" id="loop">
    <bean:write  property='<%="vec["+i+"]"%>' name="untitled1ActionForm" />">
    </logic:iterate>分数要兑现噢~~~~~~~~~
      

  4.   

    不要这样给值 httpServletRequest.setAttribute("vec",vec);
      

  5.   

    特定情况下用Request,不然Struts架构就没有意义了
      

  6.   

    可能大家没明白我的意思,treeway(趣玩)
    你说的方法是可以得到一个循环变量,我并不是不知道用这个方法得,我用for是不是比这个还容易,就算不用for,我只要在我开始的formbean里面加个属性就可以,我只是问,这个为什么会错,
    <logic:iterate id="element" indexId="index" name="vec" offset="1" length="2">
     <bean:write name="index"/>.<bean:write name="element"/><br/>
    </logic:iterate>最好能说一下错在哪里了,因为书上是这么写的,我是想知道原因。谢谢,麻烦各位了
      

  7.   

    不用Request,我下个页面怎么样得到。Action里面传过来的值呢,
      

  8.   

    不同的画面可以用同一个FormBean的
    你用Request也可以的,Action传的值赋给FormBean里的属性
      

  9.   

    如果只有一条记录这样做是不错。
    但数据库查出来一般都是多条记录,难到要把FormBean里面的属性都定义成数组或集合类型?这样会不会很麻烦?
      

  10.   

    当然不麻烦了,如果Struts连这个都解决不了,你说它会是一个好的架构吗?根据需要,属性可以定义成数组,也可以定义成集合类型不会麻烦,相反很方便
      

  11.   

    在你的struts配置文件中添加:
    <message-resources parameter="MessageResources" />
    就可以了。因为你显示的indexId是整型,bean:write标签在输出的时候首先要格式化,在格式化的时候要
    找消息资源的定义,如果没有定义就会抛出你出现的那个异常。而在你用bean:write标签输出element的时候,因为element是String,所以直接输出不需要
    格式化,除了String其他的全部需要格式化。如果还不明白你可以可以跟踪参考一下struts的源代码。
      

  12.   

    我用struts的时候除了表单用他本身的标签,其他时候都用JSTL,简单、明了
      

  13.   

    imA(男的不会,会的不男)感谢您,问题已解决。再次感谢,同时也感谢大家的参与。马上结分,谢谢