例如Product,ProductType 两个类,Product类中有productType属性 在后台 action中 查询出一个ProductType 例如 productType=new ProductType("a");
和产品列表 productList = ...;//一个ArrayList页面中循环打印出product对象的属性
<s:iterator value="productList"> <!-- productList是product对象的列表-->
  <s:property value="productType.name"/> <!-- 问题在这里:这里打印的不是页面级别的productType的name属性,而是每个product对象的productType的name属性-->
</s:iterator> 请问,我如何才能在循环中打印出页面级(上一级)的productType对象呢?

解决方案 »

  1.   

    在后台 action中 查询出一个ProductType 例如 productType=new ProductType("a"); 
    和产品列表 productList = ...;//一个ArrayList 页面中循环打印出product对象的属性 
    <s:iterator value="productList"> <!-- productList是product对象的列表--> 
      <s:property value="productType.name"/> <!-- 问题在这里:这里打印的不是页面级别的productType的name属性,而是每个product对象的productType的name属性--> 
    </s:iterator> 
    你改成ptype=new ProductType("a");<s:property value="ptype.name"/>
      

  2.   

    用el表达式不可以吗?先把productType放到session里面<s:iterator value="porductList" >
         <s:property value="${session.productType.name}"
    </s:iterator>
      

  3.   

    把productType换个名字就可以啦!
      

  4.   

    <s:iterator value="productList" name="tt"> <!-- productList是product对象的列表--> 
    <!--  <s:property value="productType.name"/>  问题在这里:这里打印的不是页面级别的productType的name属性,而是每个product对象的productType的name属性--> ${tt.name}
    </s:iterator> 这样的!
      

  5.   

    <s:iterator value="productList"> <!-- productList是product对象的列表--> 
      <s:property value="${productType.name}"/> <!-- 问题在这里:这里打印的不是页面级别的productType的name属性,而是每个product对象的productType的name属性--> 
    </s:iterator> 
      

  6.   

    你变通一下,不要将变量名起成属性字段的名字 即可vproductType=new ProductType("a");
      

  7.   

    哦 是不是这个意思?
    你遍历出来的都是对象?
    你试试看这么做 可不可以得到你想要的!
    <s:iterator value="productList"> 
     <s:property value="#productList.productType.name"/>
    </s:iterator>