名字写的不对吧,name的名字要和Action中request.setAttribute的名字一致,还有type中没有包名可以吗?

解决方案 »

  1.   

    给你一个例子 参考一下
    http://www.javawebstudio.com/html/instance/in9_db.htm
      

  2.   

    请仔细检查你自己的程序,
    OrderForm FormBean的代码:
    public final class OrderForm extends ActionForm {
        private String sCustomerName = "";
        private String sPlate = "";
        private String sMake = "";
        private String sMillage = "";    private List lstOrderLines;    public List getOrderLines(){
          return lstOrderLines;
        }仔细看这里,你的属性是lstOrderLines,但是你的get ,set方法里确实getOrderLines,
    属性都不对应呀!
    这是一个问题,另外,还有一个问题我看得不是很清楚,你的这个lstOrderLines 属性是 List类型的,但是你却在
       <logic:iterate id="lines" 
                      name="OrderForm" 
                      property = "orderLines" 
                      type = "OrderLineForm">
    这里要将它造型成OrderLineForm类型的,这样不对!或许你的意思是List中的每一个元素是OrderLineForm类型的,但是得有另外的写法。-------------------------
    问题很多,请仔细检查!
      

  3.   

    ActionForm.lstOrderLines 的get ,set 方法名字错误,
    getOrderLines(),setOrderLines()
    应该修改为 getLstOrderLines(),setLstOrderLines()奇怪,你竟然不使用Eclipse自动生成的功能!!!
    白白浪费时间调试这些不必要的错误。
      

  4.   

    zeq258(近朱者赤):
    你说的是,确实是在List中的每个元素是OrderLineForm。那么如何写法?
      

  5.   

    只要jsp中Struts tag的属性名称与FormBean的getter, setter相对应就可以,比如:
    <bean:name="MyFormBean" property="abc">
    abc在MyFormBean中必须有getAbc()和setAbc(),至于在MyFormBean中如何定义
      private sABC 还是 private sabc, 还是abc,应该没有任何关系吧?我这里的问题是:如何iterate一个master-deatail关系的数据:把detail的数据保存到一个
    List中,在jsp中利用Logic:Iterator的tag显示该detail数据对象。
      

  6.   

    删掉你的type = "OrderLineForm"
      

  7.   

    只要jsp中Struts tag的属性名称与FormBean的getter, setter相对应就可以,比如:
    <bean:name="MyFormBean" property="abc">
    abc在MyFormBean中必须有getAbc()和setAbc(),至于在MyFormBean中如何定义
      private sABC 还是 private sabc, 还是abc,应该没有任何关系吧?
    -------------------------------------------------------------------
    是有关系的,第一个第二个字母都不能使大写。