我用action给一个变量DBResult赋值,它的类型为:HashMap<String, ? extends table>。其中table是一个自定义类,里面包括一些个人设定的属性。 现在尝试用<s:iterator>把map中的项一条条读出,并列出table中的属性。但是就是不成功,希望高手帮下忙!!谢谢!!
我的代码如下,不知道哪里的问题:
<table border="1px" bordercolor="silver">
  <tr>
    <td width="200px">表名</td>
    <td width="100px">记录数</td>
    <td width="100px">字段数</td>
    <td width="300px">字段名列表</td>
  </tr>
  <s:iterator value="DBResult.keySet()" id="id">
    <s:property value="#id"/>
      <tr>
       <s:iterator value="DBResult.get(#id).values()" id="table">
<td><s:property value="nameoftable"/></td>
<td><s:property value="amountofrecord"/></td>
        <td><s:property value="amountoffield"/></td>
<td><s:property value="nameoffield"/></td>
       </s:iterator>
      </tr>
  </s:iterator>
</table>

解决方案 »

  1.   

    1.楼主用的DBResult.keySet()  不建议这样用 因为在jsp里面直接掉用函数不和谐 你也会不知道具体发生错误的原因 你可以在你的action里面直接 request.put("你的自定义数据标示",数据); 我用的是list
        然后要注意你定义的传送数据的name要和jsp里面的一致<s:iterator value="#request.list" id="us">
        <tr>
        <td><s:property value="#us.id"/>
        </td>
       
        <td><s:property value="#us.firstname"/>
        </td>
       
        <td><s:property value="#us.lastname"/>
        </td>
       
        <td><s:property value="#us.age"/>
        </td>
       
       
        </tr>
        </s:iterator>
       
      

  2.   

    我用的list, 没有用过map来转发数据支持楼上的看法
      

  3.   

    <s:iterator value="#request.list" id="n" status="st">
    <s:property value="key"/>=<s:property value="value"/>// key为map中的key,value就是你的对象
    </s:iterator>
      

  4.   


    有时候map是需要的哦,有些pojo就那样了,没有办法的呀