日期:2014-05-20  浏览次数:20723 次

紧急求助!有关利用<s:iterator>读取HashMap
我用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.楼主用的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>


------解决方案--------------------
赞同楼上
------解决方案--------------------
我用的list, 没有用过map来转发数据

支持楼上的看法

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

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